1.安装编译工具和依赖
sudo apt update
sudo apt install -y make gcc g++ bison libncurses5-dev libssl-dev libmysqlclient-dev
2.创建MySQL
用户和数据目录
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
3.下载并解压 MySQL
源码
wget wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz
tar -Jxvf mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz -C /usr/local
cd /usr/local
mv mysql-8.0.42-linux-glibc2.28-x86_64 mysql
4.初始化数据库
初始化系统表并创建初始管理员账户:
# 初始化数据目录
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 生成的临时密码会显示在终端,务必记录!
# [Note] A temporary password is generated for root@localhost: xxxxxxxx
5.创建配置文件
sudo tee /etc/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-external-locking
key_buffer_size=16M
max_allowed_packet=100M
table_open_cache=64
sort_buffer_size=512K
net_buffer_length=8K
read_buffer_size=256K
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
thread_cache_size=8
query_cache_size=8M
expire_logs_days=10
max_binlog_size=100M
[client]
default-character-set=utf8mb4
socket=/tmp/mysql.sock
[mysql]
default-character-set=utf8mb4
EOF
# 修改配置文件权限
sudo chmod 644 /etc/my.cnf
6.创建systemd
服务文件
sudo tee /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
EOF
# 重载systemd并启动服务
sudo systemctl daemon-reload
sudo systemctl start mysqld
sudo systemctl enable mysqld
7.安全配置
执行安全配置脚本
sudo /usr/local/mysql/bin/mysql_secure_installation
# 按提示操作:
# 1. 输入临时密码
# 2. 设置新密码
# 3. 移除匿名用户
# 4. 禁止远程root登录
# 5. 移除测试数据库
# 6. 重新加载权限表
8.验证安装
检查 MySQL
版本并登录验证
# 查看版本
/usr/local/mysql/bin/mysql --version
# 登录MySQL验证
/usr/local/mysql/bin/mysql -u root -p
9.环境变量配置
为方便使用,将 MySQL
命令添加到系统路径
# 添加到PATH
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc