因为要安装Zabbix Server所以才有了这个文章。Zabbix部分官网很详细了。
一、下载包
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.43-el7-x86_64.tar.gz
二、解压
mkdir /opt/
tar -xzf ~/mysql-5.7.43-el7-x86_64.tar.gz -C /opt/
cd /opt
mv mysql-5.7.43 mysql
cd mysql
ls
# LICENSE README bin docs include lib man share support-files
# 安装一些依赖包,后面如果出现报错,缺什么就装什么。
dnf install ncurses-devel bison
三、创建用户
本人以前使用rpm安装过MySQL,虽然卸载了但还是保留了MySQL用户。
稍微修改一下家目录即可:usermod mysql -d /opt/mysql
但是原来没有该用户,需要自己手动创建。
groupadd mysql
useradd -r -g mysql -s /sbin/nologin -d /opt/mysql
chmod -R mysql.mysql /opt/mysql
四、初始化
# 没发现配置文件,手动创建一下
vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/opt/mysql
datadir=/opt/mysql/data
socket=/tmp/mysql.sock
log-error=/opt/mysql/data/mysql.err
pid-file=/opt/mysql/data/mysql.pid
#character config
character_set_server=utf8
symbolic-links=0
explicit_defaults_for_timestamp=true
cd /opt/mysql
mkdir data # 创建一个目录存放数据
bin/mysqld --initialize --defaults-file=/etc/my.cnf --user=mysql --basedir=/opt/mysql/ --datadir=/opt/mysql/data
查看版本
# 把这个目录加入到环境变量中
sed -ri '$aexport PATH=$PATH:/opt/mysql/bin' /etc/profile
mysql --version
# mysql Ver 14.14 Distrib 5.7.43, for el7 (x86_64) using EditLine wrapper
五、启动
因为操作系统版本太高的缘故,下载的依赖包版本也比较高,我们使用软连接的方式让数据库所需要的低版本依赖包指向我们安装的高版本依赖包可以解决一些缺包报错。
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
ln -s /lib64/libncurses.so.6 /lib64/libncurses.so.5
# 启动
# /opt/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
/opt/mysql/support-files/mysql.server start
# 关闭
/opt/mysql/support-files/mysql.server stop
.
.
初始化完成后可以看到初始密码:grep password /opt/mysql/data/mysql.err
.
.
登录
mysql -uroot -p # 输入刚刚的临时密码
# 得修改密码才能进行其他操作
UPDATE mysql.user SET authentication_string=password(‘new_password’) WHERE user=’root’ AND host=’localhost’;
FLUSH PRIVILEGES;
.
可以将MySQL服务加入到systemd管理
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
至此配置完毕!