MySQL数据库忘记root密码, 修改密码, 创建用户

MySQL数据库忘记root密码, 修改密码, 创建用户

  • MySQL数据库忘记密码
    • 1. 停止服务
    • 2. 以安全模式启动
    • 3. 修复安全模式启动文件缺失问题
  • 修改密码
      • 1. 查看user表
      • 2. 修改密码
      • 3. 重启服务
        • 重启命令
        • 停止命令
        • 启动命令
  • 创建用户
  • 创建数据库
  • 赋予权限

MySQL数据库忘记密码

1. 停止服务

执行下列命令

sudo service mysql stop

2. 以安全模式启动

执行下列命令

sudo mysqld_safe --skip-grant-tables &

可能遇到如下问题

解决方案请看步骤3

2018-12-01T01:12:46.351554Z mysqld_safe Logging to syslog.
2018-12-01T01:12:46.354410Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2018-12-01T01:12:46.357744Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

3. 修复安全模式启动文件缺失问题

执行下面命令, 修复/var/run/mysqld的问题

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

修改密码

1. 查看user表

use mysql;
select * from user;

查看一下user表,错误的起因就是在这里, root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password。关于auth_socket官方说明

2. 修改密码

update mysql.user set authentication_string=PASSWORD('新密码'), plugin='mysql_native_password' where user='root';

3. 重启服务

重启命令

service mysql restart

停止命令

service mysql stop

启动命令

service mysql start

创建用户

create user 'username'@'host' identified by 'password'; 

///## 例如:
create user 'seven'@'%' identified by 'seven';

说明:

  • username - 你将创建的用户名
  • host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%.
  • password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

创建数据库

CREATE USER 'seven’@'%' IDENTIFIED BY 'seven'; 

赋予权限

grant select,delete,update,insert on my.* to seven@'%' identified by 'seven';

你可能感兴趣的:(数据库)