我有一台带有 Rackspace 的服务器。我想从我的本地机器命令行访问数据库。
我试过像:
mysql -u username -h my.application.com -ppassword
但它给出了一个错误:
错误 2003 (HY000): 无法连接到“my.application.com”上的 MySQL 服务器 (10061)
是什么导致了这个错误,我该如何连接到远程数据库?
10061
= 连接被拒绝
-p
标志,这样密码就不会保存在您的 bash 历史记录中。
要直接登录到远程 mysql 控制台,请使用以下命令:
mysql -u {username} -p'{password}' \
-h {remote server ip or name} -P {port} \
-D {DB name}
例如
mysql -u root -p'root' \
-h 127.0.0.1 -P 3306 \
-D local
-p 后没有空格,如 documentation 中所指定
通过切换到提到的数据库,它将直接带您进入 mysql 控制台。
只需将其放在 ubuntu 的终端上:
mysql -u username -h host -p
现在按回车
终端会问你密码,输入密码,你就进入了数据库服务器
编辑 my.cnf 文件:
vi /etc/my.cnf
:
确保:
bind-address=YOUR-SERVER-IP
如果你有这条线:
skip-networking
一定要评论它:
#skip-networking
不要忘记重新启动:
/etc/init.d/mysqld restart
grant all privileges on *.* to 'root'@'%' identified by 'your-password'
对于 Mac,使用以下命令:
mysql -u app -h hostaddress -P port -D dbname -p
然后在出现提示时输入密码。
试试这个命令 mysql -uuser -hhostname -PPORT -ppassword
。
我遇到了类似的情况,后来当用命令输入主机的mysql端口时,它就解决了。
mysql -u testuser -h 192.168.**.* -P 3306 -p password
为我工作
如果您不想使用 ssh 隧道,则必须在 my.cnf 或 mysqld.cnf 中将 127.0.0.1 更改为您的本地 IP 地址(192.168.1.100)才能通过 LAN 访问。示例如下:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在 my.cnf 或 mysqld.cnf 中搜索 bind-address
bind-address = 127.0.0.1
并将 127.0.0.1 更改为 192.168.1.100 (本地 IP 地址)
bind-address = 192.168.1.100
要应用您所做的更改,必须使用下一个命令重新启动 mysql 服务器。
sudo /etc/init.d/mysql restart
修改用户 root 以获得局域网访问权限(在您想要访问的远程服务器中运行查询的波纹管)
root@192.168.1.100:~$ mysql -u root -p
..
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果您只想从特定 ip 地址访问,请将 'root'@'%' 更改为 'root'@'(ip address or hostname)'
CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;
然后你可以连接:
nobus@xray:~$ mysql -h 192.168.1.100 -u root -p
在 ubuntu 18.04 服务器上测试
尝试 telnet 3306。如果它没有打开连接,要么是防火墙设置,要么服务器没有监听(或不工作)。在服务器上运行 netstat -an 以查看服务器是否已启动。您可能不允许远程连接。请参阅 http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
我假设你的机器上安装了 MySQL。填写缺失的详细信息后执行以下命令:
mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306
mysql 服务器通常配置为仅侦听 localhost (127.0.0.1),它们由 Web 应用程序使用。
如果这是您的情况,但您可以通过 SSH 访问您的服务器,您可以创建一个 ssh 隧道并通过它进行连接。
在您的本地计算机上,创建隧道。
ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host
(此示例使用本地端口 3307,以防您在本地计算机上运行 mysql 并使用标准端口 3306)
现在你应该可以联系了
mysql -u $user -p -h 127.0.0.1 -P 3307
-i $identity_file
。
有简单的命令。
mysql -h {hostip} -P {port} -u {username} -p {database}
例子
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
您可以使用以下代码连接到远程 MY SQL 数据库
mysql -u {database_user} -p{db_password} -h {host_name} -P {port_number}
mysql -u admin -p'your_password' -h your-company.aws.com -P 3306
必须检查对端口 3306 的传入访问是否被防火墙阻止。
这个解决方案对我有用:
在您的远程机器(例如:295.13.12.53)上可以访问您的目标远程机器(运行 mysql 服务器)
ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53
解释:
ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N
your_ssh_mashine_ipaddress - 它不是本地 IP 地址,它是您 ssh 到的 IP 地址,在本例中为 295.13.12.53
your_ssh_mashine_local_port - 这是自定义端口,不是 22,在本例中是 3306。
target_ipaddress - 您尝试转储数据库的机器的 ip。
target_port - 3306 这是 MySQL 服务器的真实端口。
user@your_ip_address - 这是您连接的 ssh mashine 的 ssh 凭据
完成所有这些后,请返回您的机器并执行以下操作:
mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql
将要求输入密码,输入您的密码并连接。希望这可以帮助。
试试这个,它的工作原理:
mysql -h {hostname} -u{username} -p{password} -N -e "{query to execute}"
这个在 mysql 8 中为我工作,用你的主机名替换 hostname
,用你的端口号替换 port_number
,如果他不是 root,你也可以更改你的 mysql_user
mysql --host=host_name --port=port_number -u root -p
你应该用'p'输入你的密码
mysql -u root -u 1.1.1.1 -p'MyPass'
我也遇到了同样的错误。但是通过在远程mysql服务器上创建新的mysql用户然后连接发现它很有用。在远程服务器上运行以下命令:
CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
现在您可以使用以下命令连接远程 mysql。
mysql -u openvani -h 'any ip address'-p
这是完整的帖子:
http://openvani.com/blog/connect-remotely-mysql-server/
如果您使用的是 Windows,请尝试使用带有 MySQL 插件的 Visual Studio Code,这是一种在 Windows 机器上访问 MySQL 数据的简单集成方式。并且列出的数据库表可以执行任何自定义查询。
不定期副业成功案例分享
-p
dev.mysql.com/doc/refman/8.0/en/command-line-options.html 之后没有中间空间-p
和指定的其余部分。脚本的执行将安全地询问您的密码。