- 官方下载MySQL
MySQL :: Download MySQL Community Server (Archived Versions) - 检查并清除系统自带的MySQL
1. 先查看mysql是否存在
rpm -qa|grep -i mysql
如果存在,先停止MySQL,删除所有服务find / -name mysql # 删除出现的所有文件
- 解压安装MySQL
解压 mysql-8.4.2-linux-glibc2.17-x86_64.tar.xz
tar xvJf mysql-8.4.2-linux-glibc2.17-x86_64.tar.xz
重命名
mv mysql-8.4.2-linux-glibc2.17-x86_64/ mysql8
进入MySQL根目录
cd mysql8
创建data文件
mkdir data
data目录需要授权。后续启动mysql可能会报错
chmod -R 755 /app/mysql8/data
- 创建MySQL组和用户并授权
groupadd mysql 创建MySQL用户useradd -g mysql mysql
授权 chown -R “mysql组名”.“mysql用户名” “mysql安装根目录”
chown -R mysql.mysql /app/mysql8
- 初始化
进入MySQL的bin目录进行初始化
./mysqld --user=mysql --basedir=/app/mysql8 --datadir=/app/mysql8/data --lower-case-table-names=1 --initialize
–lower-case-table-names=1 即设置不区分表明大小写 root@localhost: mi>jk?_Mg8OL 初始化成功后会生成初始密码 - 修改MySQL配置文件
vi /etc/my.cnf
[mysqld]
port=3306
basedir=/app/mysql8/
datadir=/app/mysql8/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
symbolic-links=0
lower_case_table_names=1
:wq # 保存退出
- 添加服务到系统
进入mysql根目录
cp -a ./support-files/mysql.server /etc/init.d/mysql
- 授权并添加服务
授权
chmod +x /etc/init.d/mysql
添加服务
chkconfig -add mysql
- 启动MySQL
service mysql start 登录MySQLbin/mysql -umsyql -p
登录MySQL时提示错误:error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
该错误的原因是因为所依赖的libncurses.so版本问题,默认依赖的版本是libncurses.so.5,但是系统上libncurses.so的版本不是5导致的。可以在/usr/lib64文件夹下查找当前系统的libncurses.so版本,比如libncurses.so.6.1。
sudo ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5
同理,可以用类似方法解决libtininfo.so等问题。
- 将MySQL命令添加到服务
这一步是为了能在任何地方通过用户名和密码登录MySQL
ln -s /app/mysql8/bin/mysql /usr/bin
- 修改密码
先使用之前初始化拿到的临时密码登录
mysql -uroot -p
重置密码
ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
- 解决本地无法连接远程虚拟机mysql服务
mysql -uroot -p
use mysql;
update user set Host = '%' where user = 'root';
FLUSH PRIVILEGES; - 设置mysql开机启动
重新加载systemd配置
sudo systemctl daemon-reload
停止MySQLservice mysql stop
使用systemctl启动MySQLsystemctl start mysql
设置开机启动systemctl enable mysqld