CentOS 7 安装MySQL5.7.25

时间:2023-03-08 16:42:55

STEP 1. 下载

去往官方下载MySQL包.http://dev.mysql.com

mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

[root@study mysql] pwd
/root/mysql
[root@study mysql] wget https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-i686.tar.gz

STEP 2. 解压缩

[root@study mysql]pwd
/root/mysql
[root@study mysql]tar -zxvf mysql-5.7.-linux-glibc2.-x86_64.tar.gz
[root@study mysql]ll
drwxr-xr-x. root root March : mysql-5.7.-linux-glibc2.-x86_64

STEP 3.  将解压后的目录的内容移动到指定的安装目录下,我选择在/usr/local/mysql, 建立相关文件以及修改文件和目录的属性

[root@study mysql]test -d /usr/local/mysql || mkdir /usr/local/mysql
#移动第二步中解压目录中的所有数据到 /usr/local/mysql中
[root@study mysql] mv mysql-5.7.25-linux-glibc2.12-x86_64/* /usr/local/mysql # 查看是否有mysql用户名和mysql用户组
[root@study mysql] cat /etc/passwd | grep mysql
[root@study mysql] cat /etc/group | grep mysql #如果存在,则删除用户和用户组
[root@study mysql] userdel -r mysql # 接下来,新建mysql用户(系统账号)、mysql用户组
[root@study mysql] groupadd mysql
[root@study mysql] useradd -r -g mysql mysql #更改/usr/local/mysql目录的用户以及用户组
[root@study mysql]chown -R mysql:mysql /usr/local/mysql # 设置mysql用户为非登录用户
[root@study mysql]usermod -s /sbin/nologin mysql # 设置mysql用户家目录为/usr/local/mysql
[root@study mysql]usermode -d /usr/local/mysql mysql ####或者可以直接在建立用户时候指定
[root@study mysql] useradd -r -s /sbin/nologin -d /usr/local/mysql/ -g mysql # 创建MySQL 数据目录
[root@study mysql]mkdir /var/mysql # 更改目录权限(用户以及用户组)
[root@study mysql]chown -R mysql:mysql /var/mysql # 创建 socket文件
[root@study mysql] touch /tmp/mysqld.sock
[root@study mysql] chown mysql:mysql /tmp/mysqld.sock # 创建pid文件
[root@study mysql] touch /usr/local/mysql/mysqld.pid
[root@study mysql] chow mysql:mysql /usr/local/mysql/mysqld.pid

# 创建 日志
[root@study mysql] test -d /var/log/mysql || mkdir /var/log/mysql
[root@study mysql] touch /var/log/mysql/mysqld.log
[root@study mysql] chown -R mysql:mysql /var/log/mysql

STEP 4. 修改配置文件 /etc/my.cnf

[root@study mysql] vim /etc/my.cnf

###

[mysqld]
# 数据目录
datadir=/var/mysql
# 基础目录
basedir=/usr/local/mysql
# MySQL监听端口
port=
# soket文件
socket=/tmp/mysqld.sock
# 服务器字符集
character-set-server = utf8
symbolic-links=
[mysqld_safe]
# mysql 日志文件
log-error=/var/log/mysql/mysqld.log
# mysql pid文件
pid-file=/usr/local/mysql/mysqld.pid

STEP 5. 安装初始化

[root@study mysql] /usr/local/mysql/bin/mysqld --intialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/mysql 

出现错误
Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive

尝试
将源码包里面的/usr/local/mysql/share/english/errmsg.sys复制到/usr/share/mysql/errmsg.sys

STEP 6.  启动测试以及service文件创建

[root@study mysql] /usr/local/mysql/bin/mysqld_safe --user=mysql &

# 如果能够通过 ps aux | grep mysqld 能看到信息,证明mysql启动成功,否则去找相应的日志错误,查明原因

# 建立启动service,能够以守护进程的方式运行mysql

[root@sutyd mysql] vim /usr/lib/systemd/system/mysqld.service

[Service]
# 服务类型
Type=forking
# 执行的用户和用户组
User=mysql
Group=mysql
# PID文件
PIDFile=/var/run/mysql/mysql.pid
TimeoutSec=
PermissionsStartOnly=true
#执行字符串
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysqld.pid $MYSQLD_OPTS
LimitNOFILE =
Restart=on-failure
RestartPreventExitStatus=
PrivateTmp=false [Install]
WantedBy=multi-user.target
Alias=mysql.service # 相应的service 介绍,可以参见 man systemd.service 中

STEP 7.  设置开机启动以及打开防火墙设置

#开机启动
[root@study mysql] systemctl enable mysqld.service
#防火墙
[root@study mysql] firewall-cmd --permanent --zone=pulibc --add-port=/tcp
[root@study mysql] firewall-cmd --reload