跳转至

MySQL 安装

1. 服务器配置建议

CPU 不低于4核
内存 不低于8GB
存储 不低于500GB
网络 1000Mbps
系统 CentOS 7.6及以上;
Ubuntu 18及以上;
各大主流国产系统(银河麒麟、统信UOS、中科方德等)

2.下载压缩包

下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz

3.切换至root

sudo su

4. 解压

tar xvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.37-linux-glibc2.12-x86_64/ /opt/mysql

5.新建data目录

mkdir /opt/mysql/data

6.环境变量

cat <<eof|tee /etc/profile.d/mysql.sh
export PATH=\$PATH:/opt/mysql/bin
eof
source /etc/profile

7. 权限设置

groupadd mysql && useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /opt/mysql

8. 初始化配置文件

cat <<eof|tee /etc/my.cnf
[mysqld]
#skip_grant_tables #密码重置,跳过权限验证

#service
port = 3306 #监听端口号,mysqld默认监听3306,建议修改成其他端口号
socket=/tmp/mysql.sock #套接字文件
basedir=/opt/mysql #安装目录
datadir=/opt/mysql/data #数据存储位置

#ssl
ssl-ca=ca.pem #CA颁发证书
ssl-cert=server-cert.pem #公钥
ssl-key=server-key.pem #私钥
#require_secure_transport=ON #强制客户端SSL访问

#log
log_error = mysqld.log #错误日志存储位置
slow_query_log = on #开启慢查询日志
slow_launch_time = 1 #慢查询阈值
slow_query_log_file = mysql-slow.log #慢查询日志存储位置
log_timestamps = SYSTEM #日志时间的时区

#optimization
group_concat_max_len = 204800 #允许的最大长度
max_connections = 500 #允许最大连接数
max_connect_errors = 1000 #允许最多链接错误次数
innodb_buffer_pool_size = 1024M #引擎缓存大小
innodb_file_per_table = 1 #表空间独立存储
max_allowed_packet = 1024M #允许的最大数据包大小

[client]
#base
socket=/tmp/mysql.sock #套接字文件

#ssl
#ssl-ca=/opt/mysql/data/ca.pem #指定ca证书
#ssl-cert=/opt/mysql/data/client-cert.pem #指定公钥证书
#ssl-key=/opt/mysql/data/client-key.pem #指定私钥
eof
chown mysql:mysql /etc/my.cnf
chmod 400 /etc/my.cnf

提示:

innodb_buffer_pool_size可以调整为您服务器内存的一半大小,例如4GB内存,可以设置为2048M。

9.初始化数据库

mysqld --initialize-insecure --user=mysql
mysql_ssl_rsa_setup
chown -R mysql:mysql /opt/mysql

如果报错:

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方法: 下载依赖文件进行安装。

  • libaio1

https://mirrors.aliyun.com/debian/pool/main/liba/libaio/libaio1_0.3.110-1_amd64.deb

dpkg -i *.deb

10.设置服务

cat <<eof|tee /etc/systemd/system/mysql.service
[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

[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf \$MYSQLD_OPTS
ExecStop=/bin/kill -s QUIT \$MAINPID
ExecReload=/bin/kill -s HUP \$MAINPID
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 51200
PrivateTmp=false
TimeoutSec=0

[Install]
WantedBy=multi-user.target
eof
chmod 644 /etc/systemd/system/mysql.service
systemctl enable mysql && \
systemctl start mysql && \
systemctl status mysql

11.设置密码

mysqladmin password 'Youdu123456'

12.登录mysql测试验证

mysql -uroot -p

如果报错:

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

解决方法:

下载依赖文件进行安装。

  • libncurses5

https://mirrors.aliyun.com/debian/pool/main/n/ncurses/libncurses5_6.2+20201114-2_amd64.deb

  • libtinfo5

https://mirrors.aliyun.com/debian/pool/main/n/ncurses/libtinfo5_6.2+20201114-2_amd64.deb

dpkg -i *.deb

13.设置远程访问

​ 默认mysql只能本机访问,需要授权远程访问。例如有度服务器IP是192.168.1.100,示例:

#登录mysql,执行授权语句
grant all privileges on *.* to 'root'@'192.168.1.100' identified by 'Youdu123456';

注意:

请根据实际情况修改IP地址,用户名、密码也可以自定义。

14. 防火墙

​ 请开放3306端口,一般情况下,只对有度服务器开放即可。