远程登录MySQL时,使用的账号要有特殊要求。默认的账号的host属性都是localhost,就是这个账号只能本地登录使用,如果要使用某个账号来远程登录,必须将账号的host属性值更改成%,如我们将root用户host属性改成可以远程登录,修改MySQL用户的host属性操作,下面一起来看看操作:
执行sql语句:
mysql> update user set host = '%' where user = 'root';
重置mysql root密码,首先,停掉mysql服务:
sudo service mysql stop
如果有服务器的root账户,自然就不用sudo了,下面所有的操作也是一样。上面的命令适用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替换mysql。下面所有的操作也是一样。然后,再以安全模式启动mysql:
sudo mysqld_safe --skip-grant-tables --skip-networking &
现在可以直接用root登录,无需密码,就用root账户登录了mysql:
mysql -u root
重置root密码
mysql> use mysql;
mysql> update user set password=PASSWORD("你的密码") where User='root';
mysql> flush privileges;
重置完毕以后,退出mysql。然后再将mysql服务启动, 接下来,就是用root账户登录了
sudo service mysql restart
mysql -u root -p 你的密码
修改账户相关权限,用root账号登录mysql以后,接下来看看A账号的相关信息:
mysql> use mysql; Database changed mysql> select User, Host from user where User='hao'; +------+--------------+ | User | Host | +------+--------------+ | hao | 127.0.0.1 | +------+--------------+
hao账户的host只有127.0.0.1,自然只能在本机登录
mysql> update user set Host='%' where User='hao';
将hao账户设置为所有机器均可登录,然后再刷新一下权限
mysql> flush privileges; mysql> select User, Host from user where User='hao'; +------+------+ | User | Host | +------+------+ | hao | % | +------+------+
至此为止,希望能给大家一个参考大功告成!以上为个人经验