MySQL我用的是apt安装的,有很多问题,建议大家用二进制程序安装。
问题描述
在服务器上登录MySQL只能用本地的127.0.0.1地址,用服务器本身地址会提示拒绝访问
尝试修改MySQL远程访问权限
修改后发现没有用,MySQL依然拒绝远程访问
查看3306端口
root@sfpql:~# netstat -an|grep 3306
修改MySQL服务地址:
尝试远程连接
telnet sfpql 3306
结语
MySQL远程连接不上是常见问题,一般设置好MySQL的远程访问权限就可以了。
apt安装的MySQL会自己将启动地址设置在本地,同时apt安装的MySQL的服务查看命令是 systemctl status mysql 其他安装方式的常看命令是 systemctl status mysqld
一、改表法。可能是你的帐号不允许从远程登陆,只能在localhost登录。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改把host更改为"%"
a. bin/mysql -uroot -p密码
b. use mysql----->show tables------>select host, user from user
c. update user set host = '%' where user = 'root'
d. flush privileges
1、登陆服务器端,进入命令行,windows cmd2、设置用户、密码让指定的IP访问:mysql -u root -p 或安装的快捷方式进入:MySQL Command Line Client,使用grant命令:
grant 权限1,权限2,权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令'例子:mysqlgrant select,insert,update,delete,create,drop on mydb.mytable to lzpddd@192.168.1.88 identified by 'mypassword'给来自192.168.1.88
的用户lzpddd分配可对数据库 mydb的mytable表进行select,insert,update,delete,create,drop等 *** 作的权限,并设定口令为'mypassword'
mysqlgrant all privileges on *.* to lzpddd@192.168.1.88 identified by 'mypassword'给来自192.168.1.88
的用户lzpddd分配可对所有数据库的所有表进行所有 *** 作的权限限,并设定口令为'mypassword'
mysqlgrant all privileges on *.* tolzpddd@'%'identified by 'mypassword'给来自任何IP地址的用户lzpddd分配可对所有数据库的所有表进行所有 *** 作的权限限,并设定口令为'mypassword'
3、关闭服务器端防火墙或者开放3306端口(很重要);
4、客户端连接:
进入命令行,windows cmd,连接:
mysql -u 用户名 -p密码 -h服务器IP地址 -P服务器端MySQL端口号 -D 数据库名注意:(1)服务器端口标志-P一定要大些以区别于用户-p,如果直接连接数据库标志-D也要大写;
(2)如果要直接输入密码-p后面不能留有空格如-pmypassword
(3)命令结束段没有''分号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)