使用手动方式安装 MySQL,手动配置 MySQL,使用 systemd 托管 MySQL 启动。
环境:
CentOS 7
MySqL 5.7
一、查看系统信息
1# 操作系统信息
2cat /etc/redhat-release
3cat /etc/os-release
4cat /proc/version
5
6# 查看内核版本
7uname -a
8
9# 查看 cpu 详细信息
10cat /proc/cpuinfo
二、下载地址
https://downloads.mysql.com/archives/community/
1wget <url>
2# 或
3curl -o xxxx.tar.gz <url>
三、解压、配置环境变量
解压
1tar -xvf mysqlxxx.tar.gz
配置环境变量,一般配置在 /etc/profile
文件。
1vim /etc/profile
2
3# 输入配置环境变量
4export PATH=$PATH:<解压mysql的bin目录>
四、初始化数据文件夹
1# 1、建立存储数据的文件夹
2mkdir /data/mysql3306
3mkdir /data/mysql3306/data
4
5# 2、添加mysql用户和用户组
6useradd -M -s /sbin/nologin mysql
7
8# 3、修改目录权限
9chown -R mysql.mysql /data/mysql3306
10
11# 4、添加启动配置文件
12vim /data/mysql3306/my.cnf
13--------------------------
14[mysql]
15# 设置mysql客户端默认字符集
16default-character-set=utf8
17[mysqld]
18# 跳过权限表校验
19# skip-grant-tables
20skip-name-resolve
21# 设置3306端口
22port=3306
23# 设置mysql的安装目录
24basedir=/data/mysql-5.7.39
25# 设置mysql数据库的数据的存放目录
26datadir=/data/mysql3306/data
27# 允许最大连接数
28max_connections=200
29# 服务端使用的字符集默认为8比特编码的latin1字符集
30character-set-server=utf8
31# 创建新表时将使用的默认存储引擎
32default-storage-engine=INNODB
33lower_case_table_names=1
34max_allowed_packet=16M
35
36# 5、初始化数据目录
37mysqld --initialize-insecure --user=mysql --basedir=/data/mysql3306 --datadir=/data/mysql3306/data
38
39# 如果初始化错误,报缺失 libaio 错误,需要安装该组件
40yum install -y libaio
五、将 MySQL 服务加入 systemd
systemd 的配置文件 xxxx.service
一般在 /etc/systemd/system
目录下。
1vim /etc/systemd/system/mysqld.service
2--------------------------------------
3[Unit]
4Description=MySQL Server
5Documentation=man:mysqld(8)
6Documentation=https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html
7After=network.target
8After=syslog.target
9
10[Install]
11WantedBy=multi-user.target
12
13[Service]
14User=mysql
15Group=mysql
16Type=forking
17TimeoutSec=0
18PermissionsStartOnly=true
19# 通常只配置这里,注意 mysqld 命令必须为绝对路径
20ExecStart=/data/mysql-5.7.39/bin/mysqld --defaults-file=/data/mysql3306/my.cnf --daemonize
21LimitNOFILE=5000
22Restart=on-failure
23RestartSec=10
24RestartPreventExitStatus=1
25PrivateTmp=false
六、启停
1# 重新加载守护进程
2systemctl daemon-reload
3# 启动 mysql
4systemctl start mysqld
5# 暂停
6systemctl stop mysqld
7# 查看状态
8systemctl status mysqld
登录
1# 登录,默认未配置密码
2mysql -uroot -S /tmp/mysql.sock
七、设置密码和权限
参加: https://elltor.com/posts/guide/simple-docker-install-mysql8-guide-2020/