windows下的mysql忘记密码、或添加新用户、为用户创建数据库、为新用户分配权限

时间:2023-01-14 08:52:53

登录MySQL

[plain]  view plain  copy
  1. mysql -u root -p  

添加新用户

允许本地 IP 访问 localhost, 127.0.0.1

[plain]  view plain  copy
  1. create user 'test'@'localhost' identified by '123456';  

允许外网 IP 访问

[plain]  view plain  copy
  1. create user 'test'@'%' identified by '123456';  

刷新授权

[sql]  view plain  copy
  1. flush privileges;  

为用户创建数据库

[sql]  view plain  copy
  1. create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;  

为新用户分配权限

授予用户通过外网IP对于该数据库的全部权限

[sql]  view plain  copy
  1. grant all privileges on `testdb`.* to 'test'@'%' identified by '123456';  
授予用户在本地服务器对该数据库的全部权限

[sql]  view plain  copy
  1. grant all privileges on `testdb`.* to 'test'@'localhost' identified by '123456';  

刷新权限
[sql]  view plain  copy
  1. flush privileges;  
退出 root 重新登录
[sql]  view plain  copy
  1. exit  
用新帐号 test 重新登录,由于使用的是 % 任意IP连接,所以需要指定外部访问IP
[plain]  view plain  copy
  1. mysql -u test -h 115.28.203.224 -p  


在Ubuntu服务器下,MySQL默认是只允许本地登录,因此需要修改配置文件将地址绑定给注释掉:

[plain]  view plain  copy
  1. # Instead of skip-networking the default is now to listen only on  
  2. # localhost which is more compatible and is not less secure.  
  3. #bind-address       = 127.0.0.1     #注释掉这一行就可以远程登录了  

不然会报如下错误:

ERROR 2003 (HY000): Can't connect to MySQL server on 'host' (111)