Mysql 简易安装
Mysql 简易安装
安装Mysql8.0(centos8为例), 可参考 MySQL官方文档
1# CentOS el8下载 MySQL YUM 仓库(替换为最新版本)
2wget https://dev.mysql.com/get/mysql80-community-release-el8-6.noarch.rpm
3# el9 使用sudo yum install mysql84-community-release-el9-x86_64.noarch.rpm
4sudo rpm -Uvh mysql80-community-release-el*.rpm
5sudo yum makecache
6# 安装 MySQL 社区版服务器
7# el9 的话sudo yum install mysql84-community-release-el9-x86_64.noarch.rpm
8
9sudo yum install -y mysql-community-server
10# 可以通过手动编辑/etc/yum.repos.d/mysql-community.repo文件来选择发布系列。
11# **install时如果出现GPG 密钥问题**
12# sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
13# sudo chmod 644 /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
14# sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
15# 重新执行 yum install -y mysql-community-server
16
17# 启动 MySQL 服务
18sudo systemctl start mysqld
19sudo systemctl enable mysqld
20sudo systemctl status mysqld
21
22#MySQL 首次启动会生成一个临时 root 密码:
23sudo grep 'temporary password' /var/log/mysqld.log
24
25# 运行安全配置向导:
26#按提示操作:1.输入临时密码。2.置新密码(需符合复杂度要求)。3.移除匿名用户、禁止远程 root 登录、删除测试数据库等。
27sudo mysql_secure_installation
28mysql -u root -p
简单配置
1-- 修改 root密码
2ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
3
4-- 创建新用户
5CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
6
7-- 设置远程访问
8GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%';
9
10FLUSH PRIVILEGES;
防火墙3306
1sudo firewall-cmd --add-port=3306/tcp --permanent
2sudo firewall-cmd --reload
MySQL 配置文件通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf。
MySQL优化
MySQL配置优化
编辑/etc/my.cnf或/etc/mysql/my.cnf,添加/修改以下参数:
1[mysqld]
2# 基础配置 内存配置
3# InnoDB缓冲池大小(推荐为总内存的50-70%)
4innodb_buffer_pool_size = 1G
5# InnoDB日志文件大小(推荐为缓冲池的25%)
6innodb_log_file_size = 256M
7# InnoDB日志缓冲区大小
8innodb_log_buffer_size = 16M
9# 查询排序缓冲区大小
10sort_buffer_size = 2M
11read_buffer_size = 2M
12read_rnd_buffer_size = 2M
13join_buffer_size = 4M
14
15# InnoDB引擎优化
16# I/O配置
17innodb_flush_method = O_DIRECT
18innodb_io_capacity = 1000
19innodb_io_capacity_max = 2000
20# 并发控制
21innodb_thread_concurrency = 0
22innodb_read_io_threads = 8
23innodb_write_io_threads = 8
24# 事务日志
25innodb_flush_log_at_trx_commit = 1 # 需要最高耐久性时设为1,性能要求高时可设为2
26sync_binlog = 1
27
28# 连接相关
29# 最大连接数(根据应用需求调整)
30max_connections = 50
31# 线程缓存大小
32thread_cache_size = 10
33# 表缓存
34table_open_cache = 2000
35table_definition_cache = 1000
36
37# 查询优化
38# query_cache_type = 0 # MySQL 8已移除查询缓存
39tmp_table_size = 32M
40max_heap_table_size = 32M
系统级优化
1# 调整文件描述符限制
2echo "* soft nofile 65535" >> /etc/security/limits.conf
3echo "* hard nofile 65535" >> /etc/security/limits.conf
4
5# 内核参数优化
6echo "vm.swappiness = 10" >> /etc/sysctl.conf
7echo "vm.dirty_ratio = 60" >> /etc/sysctl.conf
8echo "vm.dirty_background_ratio = 5" >> /etc/sysctl.conf
9echo "net.ipv4.tcp_max_syn_backlog = 65535" >> /etc/sysctl.conf
10sysctl -p
重启,如出现错误检查日志 sudo cat /var/log/mysql/error.log
发表评论