Linux部署Mysql
- 从MySQL官网下载(也可直接上传安装包)
cd /usr/local
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
- 解压
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
- 创建软链接
ln -s mysql-8.0.26-linux-glibc2.12-x86_64 mysql
- 创建用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
- 创建数据目录(建议放在独立分区)
mkdir -p /data/mysql
mkdir -p /var/log/mysql
mkdir -p /var/run/mysql
- 授权
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /var/log/mysql
chown -R mysql:mysql /var/run/mysql
chown -R mysql:mysql /usr/local/mysql
- 安装依赖库
yum install -y libaio
- 初始化数据库
#进入mysql目录
cd /usr/local/mysql
# 初始化会生成临时root密码,请记录最后一行的密码
bin/mysqld --initialize --user=mysql --datadir=/data/mysql
- 配置 my.cnf
cat > /etc/my.cnf << EOF
[mysqld]
datadir=/data/mysql
socket=/var/run/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysql/mysqld.pid
port=3306
# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
socket=/var/run/mysql/mysql.sock
default-character-set=utf8mb4
EOF
- 创建systemd服务文件
cat > /etc/systemd/system/mysql.service << EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecReload=/bin/kill -HUP \$MAINPID
ExecStop=/bin/kill -QUIT \$MAINPID
PrivateTmp=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
- 重载systemd
systemctl daemon-reload
- 启动MySQL服务
systemctl start mysql
- 设置开机自启
systemctl enable mysql
- 查看状态
systemctl status mysql
- 修改root密码
# 查看临时密码
grep 'temporary password' /var/log/mysql/mysqld.log
# 使用临时密码登录
/usr/local/mysql/bin/mysql -u root -p
# 在MySQL shell中执行(替换YourNewPassword):
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
exit;
- 配置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
- 开启远程访问权限
#开启远程访问权限
update mysql.user set host = '%' where user='root';
#刷新权限
FLUSH PRIVILEGES;
-- 创建远程访问的 root 用户
CREATE USER 'root'@'%' IDENTIFIED BY 'meng@1993!';
-- 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 刷新权限使其立即生效
FLUSH PRIVILEGES;
评论区