修改MySQL账户密码、授予远程登陆权限
  在 数据库 分类下   6 条评论

修改MySQL账户密码、授予远程登陆权限

  在 数据库 分类下   6 条评论

MySQL修改密码

用SET PASSWORD命令

首先登录MySQL

mysql -u root -p     #输入密码登陆MySQL
mysql> set password for 用户名@localhost = password('新密码'); 

例如你想把root账户的密码改为123


mysql> set password for root@localhost = password('123'); 

用mysqladmin

mysqladmin -u用户名 -p旧密码 password 新密码

例如修改root密码为123.

mysqladmin -uroot -p123456 password 123 

用update直接编辑user表

修改root用户密码为123,首先登陆mysql

mysql> use mysql; 
mysql> update user set password=password('123') where user='root' and host='localhost'; 
mysql> flush privileges; 

忘记MySQL密码的时候

修改MySQL配置文件

在最后一行加入一下内容:

skip-grant-tables  //跳过授权直接进入数据库

重启MySQL

[root@VM_220_231_centos ~]# service mysqld restart
[root@VM_220_231_centos ~]# mysql        #直接执行mysql登陆

重设密码

mysql> use mysql     //密码存放在mysql库的user表中
+----------------------+------+-------------------------------------------+
| host                 | user | password                                  |
+----------------------+------+-------------------------------------------+
| localhost            | root | *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |        #root用户密码
| vm\_220\_231\_centos | root |                                           |
| 127.0.0.1            | root |                                           |
| ::1                  | root |                                           |
+----------------------+------+-------------------------------------------+
mysql> update user set password=password('123456') where user="root";     //设置密码为123456
mysql> flush privileges;     //刷新权限

退出重新登陆

修改MySQL配置文件,删除或注释掉刚添加的内容,然后重启MySQL,使用新密码登陆


[root@VM_220_231_centos ~]# service mysqld restart
[root@VM_220_231_centos ~]# mysql -uroot -p123456

MySQL赋予用户远程访问权限

在我们使用MySQL数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库。缺省状态下,MySQL的用户没有远程访问的权限。

下面介绍两种方法,解决这一问题。

改表法

登入MySQL后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改为"%"

mysql -u root -p     #输入密码,登陆mysql
mysql>use mysql; 
mysql>update user set host = '%' where user = 'root'; 
mysql>select host, user from user; 

授权法

在安装MySQL的机器上运行:


mysql -u root -p     #输入密码登陆MySQL
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

赋予任何主机访问数据的权限

例如,你想允许用户myuser使用密码mypassword从任何主机连接到MySQL服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  

如果你想允许用户myuser从ip为192.168.1.6的主机连接到MySQL服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

刷新权限

mysql>FLUSH PRIVILEGES

修改生效,退出MySQL服务器,这样就可以在其它任何的主机上以root身份登录.

评论已关闭
  1. 饭饭

    刚好用到,3Q了

    1. @饭饭

      icon_mrgreen.gif icon_mrgreen.gif 哈哈