Linux下MySQL 5.7.22安装和忘记密码


简述

Redhat下安装MySQL5.7.22教程,安装完成后成功忘记密码-_-

安装MySQL

1. 压缩包处理

解压压缩包

1
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  

重命名mysql解压文件

1
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql

复制mysql文件

1
cp -r mysql /usr/local/mysql

2. 添加系统mysql组合mysql用户

添加系统mysql组

1
groupadd mysql

添加mysql用户

1
useradd -r -g mysql mysql

添加mysql目录所有者为mysql

1
chown -R mysql:mysql /usr/local/mysql

添加data目录所有者为mysql(在mysql目录下新建data文件夹)

1
chown -R mysql:mysql data

3. 配置my.cnf

vim /etc/my.cnf
(如果没有这个文件,直接新建)

1
2
3
4
5
6
7
8
9
10
11
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names = 1
#log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

4. 安装数据库

在mysql目录下,初始化数据库

1
bin/mysqld --initialize --user=mysql 

成功后,会生成临时密码,在最后一行。记住这个密码

执行以下命令创建RSA private key

1
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

5. 添加开机启动

复制mysql.server

1
cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

修改mysql.server

vim /etc/init.d/mysqld

添加basedir和datadir

1
2
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

6.启动MySQL

1
2
3
service mysqld start  #启动
service mysqld stop #停止
service mysqld status #查看状态

7.开机启动

1
chkconfig --add mysqld

8. 登陆修改密码

首次登陆,密码为之前的临时密码

mysql -uroot -p

如果出现`-bash: mysql:command not found`问题

添加软连接`  ln -s /usr/local/mysql/bin/mysql /usr/bin`

输入密码后

如果出现Your password has expired. To log in you must change it using a client that supports expired passwords
这样的问题,那么跟我一样,重置密码

正常访问,进入mysql>

修改之前的临时密码

1
alter user 'root'@'localhost' identified by 'your password';   

刷新权限

1
flush privileges;   

授权新用户

1
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test password' WITH GRANT OPTION;   

允许用户远程访问

1
2
3
select 'host' from user where user='root';
update user set host = '%' where user ='root';
flush privileges;

忘记密码

关闭mysql

1
2
3
service mysqld stop
# 或者
kill MYSQL_PID

进入安全模式(mysql的bin目录下cd mysql/bin)

1
./mysqld_safe --skip-grant-tables &

root用户无密码登陆

1
mysql -uroot

进入之后,选择mysql数据库

1
use mysql;

更新密码

1
update user set authentication_string=password('ustc@mysql123') where user='root'; 

authentication_string字段变化,以前为password字段
刷新权限表

1
flush privileges;

退出

1
quit;

重启mysql,新密码登录(陆?)

mysql.user表权限

mysql创建用户与授权

CREATE USER ‘ustc‘@’%’ IDENTIFIED BY ‘ustc’;

GRANT ALL ON . TO ‘ustc‘@’%’;

grant all privileges on . to root@”%” with grant option


文章作者: 苏叶新城
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 苏叶新城 !
  目录