下载社区版的 MySQL,根据需求下载对应版本,其中有最小安装版本。具体各个版本的区别,可以上网查询,链接 MySQL :: Download MySQL Community Server
进入到压缩包所在的文件夹,解压分为两次,第一次解压 xz 文件,第二次解压 tar 文件。
xz -dv mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar
复制解压后的文件到到要安装的目录,我要把 MySQL 安装到 /usr/local/mysql,所以,运行以下命令,把解压后的文件复制过去
sudo cp -r mysql-8.0.32-linux-glibc2.12-x86_64/* /usr/local/mysql
这里需要修改以下安装目录的权限,由于我们使用 mysql 用户运行数据库,所以,要把安装目录的拥有者改为 mysql,如果系统没有,需要添加 mysql 用户及分组,我们只使用 mysql 运行程序,所以指定了 mysql 禁止登录,增加安全性
sudo groupadd mysql
sudo useradd mysql -s /usr/sbin/nologin -g mysql
修改安装目录的拥有者为 mysql
chown -R mysql:mysql /usr/local/mysql/
编辑配置文件,我们把配置文件放到 /etc/my.cnf
/etc/my.cnf
配置如下:
[client]
port=3306
# 端口
# mysqlx_port=33060
socket=/var/lib/mysql/mysql.sock
# mysqlx_socket=/var/lib/mysqlx.sock
[mysqld]
# skip-grant-tables
# mysql安装目录
basedir=/usr/local/mysql/
# mysql数据库目录
datadir=/var/lib/mysql/data/
port=3306
innodb_file_per_table=1
character-set-server=UTF8MB4
mysqlx_port=33060
socket = /var/lib/mysql/mysql.sock
# mysqlx_socket=/var/lib/mysql/mysqlx.sock
[mysqld_safe]
# 错误日志
log-error=/var/log/mysql/error.log
# pid文件
pid-file=/usr/local/mysql/mysqld.pid
tmpdir=/var/lib/mysql/mysql
编辑文件 support-files/mysql.server,修改里面的相关目录
安装目录 basedir=/usr/local/mysql
配置目录 /etc/my.cnf
数据库文件目录 datadir=/var/lib/mysql/data/
pid 文件 pid-file=/usr/local/mysql/mysqld.pid
初始化数据库,注意,初始化成功后,终端会显示 root 账号密码,一定要保存下来
sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize
sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql
连接数据库,修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
创建守护程序,保证在服务器重启后能够自动启动,运行
sudo vim /etc/systemd/system/mysql.service
内容如下,其中 User 和 Group 为 mysql
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
# 使能
sudo systemctl enable mysql.service
# 启动
sudo systemctl start mysql.service
# 查看状态
sudo systemctl status mysql.service
重启服务器验证 mysql 进程是否启动