编程开发MySQLMySQL 8.4.8 LTS 安装
ZhangCurryMySQL 8.4.8 LTS 安装
下载地址:
1
| https://dev.mysql.com/downloads/mysql
|
将安装包上传到 /opt 目录下
解压并删除压缩包:
1 2
| # 解压tar -xf mysql-8.4.8-linux-glibc2.28-x86_64.tar.xz # 删除压缩包rm -rf mysql-8.4.8-linux-glibc2.28-x86_64.tar.xz
|
修改文件夹名称:
1 2
| # 修改文件夹名称mv /opt/mysql-8.4.8-linux-glibc2.28-x86_64 /opt/mysql8.4.8 # 创建工作目录文件夹cd /opt/mysql8.4.8mkdir data
|
创建用户并授予权限:
1 2
| # 创建用户useradd mysql # 授予权限chown mysql:mysql -R /opt/mysql8.4.8chmod -R 775 /opt/mysql8.4.8
|
创建配置文件:
写入如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4
[mysqld] # 禁用dns解析 skip-name-resolve # 身份验证插件 authentication_policy=caching_sha2_password # 绑定地址 bind-address=0.0.0.0 mysqlx-bind-address=127.0.0.1 # 设置 3306 端口 port=3306 # 设置mysql的安装目录 basedir=/opt/mysql8.4.8 # 设置mysql数据库的数据的存放目录 datadir=/opt/mysql8.4.8/data # 错误日志 log-error=/opt/mysql8.4.8/data/error.log # pid 文件 pid-file=/opt/mysql8.4.8/data/mysqld.pid # sock 文件 socket=/opt/mysql8.4.8/data/mysql.sock # 慢查询日志开关 slow_query_log=1 # 慢查询日志路径 slow_query_log_file=/opt/mysql8.4.8/data/mysql-slow.log # 慢查询日志时间(秒) long_query_time=2 # 没有使用索引 log_queries_not_using_indexes=1 # 允许最大连接数 max_connections=2048 # 设置数据库的默认时区 default-time-zone=+08:00 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8mb4 # 数据库字符集对应一些排序等规则,注意要和character-set-server对应 collation-server=utf8mb4_general_ci # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 忽略大小写 lower_case_table_names=1 # 允许goup by出现其他列 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
|
初始化 mysql:
1
| /opt/mysql8.4.8/bin/mysqld --initialize --user=mysql
|
NOTE:这时容易出现一个 error
如下命令解决:
1 2 3 4
| apt install numactl libaio1t64 -y cd /usr/lib/x86_64-linux-gnu/ ln -s libaio.so.1t64.0.2 libaio.so.1 ln -s libncursesw.so.6.4 libncurses.so.6
|
再次初始化:
1
| /opt/mysql8.4.8/bin/mysqld --initialize --user=mysql
|
查看初始密码:
1
| cat /opt/mysql8.4.8/data/error.log
|
我们继续配置 systemd,用来安全管理 mysql 服务:
创建服务:
1
| vim /etc/systemd/system/mysqld.service
|
写入配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [Unit] Description=MySql Service After=network.target
[Service] Type=forking User=mysql Group=mysql Type=notify NotifyAccess=all ExecStart=/opt/mysql8.4.8/bin/mysqld Restart=on-failure StandardOutput=journal StandardError=journal
[Install] WantedBy=multi-user.target
|
重新加载 systemd:
设置开机启动:
1
| systemctl enable mysqld.service
|
现在可以启动服务了:
1
| systemctl start mysqld.service
|
检查服务状态:
1
| systemctl status mysqld.service
|
其他命令:
1 2 3 4
| # 停止服务systemctl stop mysqld.service # 重启服务systemctl restart mysqld.service # 查看启动日志(最后100行)journalctl -u mysqld.service -n 100 # 查看错误日志(最后100行)tail -100 /opt/mysql8/data/error.log
|