文章目录
- 安装步骤
-
- [1. 解压安装包](#1. 解压安装包)
- [2. 移动解压后的文件夹](#2. 移动解压后的文件夹)
- [3. 创建MySQL用户](#3. 创建MySQL用户)
- [4. 设置权限](#4. 设置权限)
- [5. 配置MySQL](#5. 配置MySQL)
- [6. 设置环境变量](#6. 设置环境变量)
- [7. 初始化数据库](#7. 初始化数据库)
- [8. 设置系统服务](#8. 设置系统服务)
- [9. 设置root密码](#9. 设置root密码)
- [10. 登录MySQL并配置远程访问](#10. 登录MySQL并配置远程访问)
- 注意
安装步骤
1. 解压安装包
bash
tar -xf mysql-8.0.33-el7-x86_64.tar.gz
2. 移动解压后的文件夹
bash
mv mysql-8.0.33-el7-x86_64 mysql
mv mysql /usr/local/
3. 创建MySQL用户
bash
useradd -s /sbin/nologin mysql
4. 设置权限
bash
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
5. 配置MySQL
编辑 /etc/my.cnf
文件,覆盖为以下配置(可以把原配置注释掉):
bash
# 客户端配置
[client]
port = 3306 # MySQL客户端连接的默认端口
socket=/usr/local/mysql/mysql.sock # MySQL客户端连接的socket文件路径
# MySQL服务器配置
[mysqld]
user = mysql # 运行MySQL服务的系统用户
basedir=/usr/local/mysql # MySQL安装目录的路径
datadir=/usr/local/mysql/data # MySQL数据文件的存储目录
port = 3306 # MySQL服务器监听的端口号
character-set-server=utf8 # 服务器端默认字符集
pid-file = /usr/local/mysql/mysqld.pid # MySQL服务器进程ID文件的路径
socket=/usr/local/mysql/mysql.sock # MySQL服务器使用的socket文件路径
bind-address = 0.0.0.0 # MySQL服务器绑定的IP地址,0.0.0.0表示监听所有可用的网络接口
skip-name-resolve # 禁用DNS解析,提高连接速度,但可能导致无法使用主机名连接
max_connections=2048 # 允许的最大并发连接数
default-storage-engine=INNODB # 默认存储引擎,这里设置为InnoDB
max_allowed_packet=16M # 允许的最大数据包大小,单位为字节
server-id = 1 # MySQL复制中的唯一标识符,用于主从复制
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # SQL模式设置,定义了MySQL应如何处理SQL语句
6. 设置环境变量
bash
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
7. 初始化数据库
bash
cd /usr/local/mysql/bin/
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
8. 设置系统服务
bash
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
systemctl daemon-reload
systemctl restart mysqld
9. 设置root密码
bash
mysqladmin -u root password "123456"
10. 登录MySQL并配置远程访问
bash
mysql -u root -p123456
在MySQL shell中执行:
sql
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
注意
- 安全性:在生产环境中,请务必设置强密码,并限制远程访问权限。
- 防火墙:确保服务器的防火墙允许3306端口的流量。
- SELinux:如果启用了SELinux,可能需要额外配置以允许MySQL的网络访问。
- 备份:在修改配置或进行重要操作前,请务必备份数据库。