文章目录
- 卸载MySQL
- 在线安装
- 离线安装
- 忘记密码
卸载MySQL
安装前先卸载系统上旧版本的 MySQL(没有则跳过此步骤)
- 查看已安装的MySQL
rpm -qa | grep mysql
- 卸载查询到的所有安装包
rpm -e PackageName # 可批量删除
- 删除
my.cnf
查看/etc/my.cnf
文件是否还存在,若存在则直接删除rm -f /etcmy.cnf
在线安装
-
进入官网下载所需的MySQL版本,下载后上传至服务器任意目录下
或者复制下载链接,使用
wget
命令在线下载wget https://dev.mysql.com/get/mysql80-community-release-el9-3.noarch.rpm
-
安装RPM包
rpm -ivh mysql80-community-release-el9-3.noarch.rpm
安装后可以看到
yum
源配置目录下新增3个MySQL相关文件 -
安装MySQL
dnf install mysql-community-server -y
-
启动MySQL
systemctl enable --now mysqld.service # 开机自启并立即启动mysql systemctl status mysqld.service # 查看mysql状态
-
查看初始密码
grep "password" /var/log/mysqld.log
-
基础配置
使用初始密码登录MySQL,执行命令
mysql -u root -p
-
修改初始化密码
# ↓MySQL8密码等级要求较高,首次修改密码时必须包含大小写字母、数字和特殊符号 alter user "root"@"localhost" identified by "Test!@12"; # 修改root密码
-
配置可远程连接
use mysql; # 使用mysql库 update user set host="%" where user="root"; # 将host修改为所有ip均可以访问 flush privileges; # 刷新权限
-
修改密码策略
首次修改密码后才可以查看密码策略的具体信息,因此只有修改初始密码后才能修改密码策略
show variables like "validate_password%"; # 查看密码策略
修改密码策略等级和长度
set global validate_password.length=5; # 密码长度设置为5位数 set global validate_password.policy=0; # 密码策略改为低 alter user "root"@"%" identified by "12345"; # 之后就可以设置简单的密码啦
-
离线安装
-
进入官网下载所需的MySQL版本,下载后上传至服务器任意目录下
-
解压
mkdir mysql-8.0.34 # 创建mysql-8.0.34目录 tar -xf mysql-8.0.34-1.el9.x86_64.rpm-bundle.tar -C mysql-8.0.34/ # 将tar包解压到新建的目录下
-
安装解压后的所有文件
cd mysql-8.0.34/ # 进入mysql-8.0.34目录 rpm -ivh mysql-community-* --force --nodeps # 不检查依赖并强制安装所有mysql-community-开头的rpm文件
-
上述安装会自动添加用户和用户组
mysql
,所以只要修改MySQL数据所在目录的所有者为mysql
用户和用户组即可# ↓创建mysql数据存放目录,存放位置可自行选择 mkdir -p /var/lib/mysql/data mkdir -p /var/lib/mysql/run mkdir -p /var/lib/mysql/tmp chown -R mysql:mysql /var/lib/mysql # 将mysql目录的所有者给mysql用户和用户组 chown mysql:mysql /var/log/mysqld.log # 将mysqld.log文件的所有者给mysql用户和用户组
-
配置MySQL
执行命令
vim /etc/my.cnf
,添加以下信息,请根据实际路径进行修改,注意:请检查此文件内是否已存在相关信息,若已存在相关字段,请直接修改,否则配置路径冲突或错误均会造成MySQL服务启动失败[mysqld] datadir=/var/lib/mysql/data socket=/var/lib/mysql/run/mysqld.sock pid-file=/var/lib/mysql/run/mysqld.pid tmpdir=/var/lib/mysql/tmp log-error=/var/log/mysqld.log character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' skip-character-set-client-handshake=true skip-name-resolve user=mysql port=3306 [mysql] port=3306 default-character-set=utf8mb4 [client] default-character-set=utf8mb4 socket=/var/lib/mysql/run/mysqld.sock [mysqldump] quick max_allowed_packet=1024M default-character-set=utf8mb4
-
启动MySQL
systemctl start mysql.service systemctl status mysql.service
其它操作和【在线安装】中的步骤4之后的操作一样,就不再赘述啦!
忘记密码
若忘记数据库密码,可通过跳过授权表访问数据库,然后重置密码
-
在
vim /etc/my.cnf
文件,在[mysqld]
下添加以下内容,然后保存退出skip-grant-tables
-
重启MySQL服务
systemctl restart mysqld.service
-
访问MySQL,执行命令:
mysql -u root -p
,不输入密码,直接回车键即可访问use mysql; # 使用mysql库 update user set authentication_string="" where user="root"; # 将密码置位空 flush privileges; # 刷新权限
-
再次编辑
vim /etc/my.cnf
文件,删除刚才添加的skip-grant-tables
,保存退出, 重启MySQL服务systemctl restart mysqld.service
就可以无密码访问数据库啦,之后可通过alter user "root"@"%" identified by "Test!@12";
命令设置新的访问密码
更多SQL命令请查看常用SQL语句总结