shell> mysql --user=root mysql

 

mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','custom',PASSWORD('stupid'));

mysql> INSERT INTO user (Host,User,Password) VALUES('server.domain','custom',PASSWORD('stupid'));

mysql> INSERT INTO user (Host,User,Password) VALUES('whitehouse.gov','custom',PASSWORD('stupid'));


mysql> INSERT INTO db 

   (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,  Create_priv,Drop_priv)

   VALUES ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');

 

mysql> INSERT INTO db

   (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv)

   VALUES ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');

 

mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv)

   VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');

 

mysql> FLUSH PRIVILEGES;




默认情况下mysql是不能远程连接的,需要修改权限设置:
两种方法:

在命令行下,可以有两种大同小异的方法来作此设置:

(1)mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

第一句增加了一个root用户授权通过本地机(localhost)访问,密码“something”。

第二句则是使用通配符,授与root用户从任何其它主机发起的访问。

 

(2)亦可直接使用update语句修改user表:使用root用户或其他用户登录mysql,转到mysql数据库

update user set host='localhost' where user='root';

flush privileges;//只允许root在本机登录

 

update user set host='%' where user='root';

flush privileges;//允许root远程访问



在4.1以上版本的MySQL中的密码的哈希算法有了变化,可能会导致一些使用老协议的客户端连接失败,提示错误信息:1251 Client does not support authentication protocol requested by server; consider upgrading MySQL client。 这是相应的处理方法:
mysql> UPDATE mysql.user SET password = OLD_PASSWORD('yourpwd')  WHERE host = 'yourhost' AND user='username';

mysql>FLUSH PRIVILEGES;

 

 


相关文章:

  • 2021-09-28
  • 2022-12-23
  • 2021-11-01
  • 2022-12-23
  • 2022-12-23
  • 2021-06-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-11
  • 2021-10-07
  • 2022-12-23
  • 2021-05-23
  • 2021-04-11
相关资源
相似解决方案