简述
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 | [mysqld] |
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 | basedir=/usr/local/mysql |
6.启动MySQL
1 | service mysqld start #启动 |
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 | select 'host' from user where user='root'; |
忘记密码
关闭mysql
1 | service mysqld stop |
进入安全模式(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创建用户与授权
CREATE USER ‘ustc‘@’%’ IDENTIFIED BY ‘ustc’;
GRANT ALL ON . TO ‘ustc‘@’%’;
grant all privileges on . to root@”%” with grant option