MySQL 是一种流行的开源关系型数据库管理系统,常用于Web应用程序的后端数据存储。本文将介绍如何在CentOS上部署和配置MySQL数据库,以及一些常见的注意事项。
步骤一:安装MySQL
在CentOS上安装MySQL可以通过yum包管理器来完成。在命令行中执行以下命令来安装MySQL:
sudo yum install https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo yum install mysql-community-server
步骤二:启动MySQL服务
安装完成后,启动MySQL服务,并设置开机自启动:
sudo systemctl start mysqld
sudo systemctl enable mysqld
步骤三:配置MySQL
首次安装MySQL时,需要运行安全性脚本以保护数据库系统。在终端中执行以下命令并按照提示进行配置:
sudo mysql_secure_installation
步骤四:访问和管理MySQL
通过以下命令可以登录MySQL:
mysql -u root -p
然后输入您设置的root密码。您现在可以开始使用MySQL数据库了。
MySQL 5.7 的配置文件 my.cnf 包含了许多重要的配置选项,用于控制 MySQL 服务器的行为和性能。以下是一般情况下的 MySQL 5.7 my.cnf 配置文件的示例,同时还包括了每个配置项的简要说明。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-character-set-client-handshake
# 设置字符集
character-set-server=utf8mb4
# 启用二进制日志
log-bin=mysql-bin
# 设置服务器ID,用于复制
server-id=1
# InnoDB 缓冲池的大小,根据服务器内存大小调整
innodb_buffer_pool_size=2G
# 查询缓存大小,5.7 版本已经移除
query_cache_type=0
# 设置最大连接数
max_connections=100
# 设置日志文件大小和数量
log-error=/var/log/mysqld.log
log_output=FILE
general_log=0
general_log_file=/var/log/mysql/general.log
# 不记录空密码登录的用户
require_secure_transport=ON
# 开启慢查询日志
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=2
# 设置最大允许的数据包大小
max_allowed_packet=16M
# 允许远程登录
bind-address=0.0.0.0
# 设置连接超时时长
wait_timeout=600
配置说明:
datadir
: MySQL 数据库文件存放的路径。log-error
: 错误日志文件的路径。pid-file
: 存放进程ID的文件路径。character-set-server
: 设置 MySQL 服务器的字符集。log-bin
: 启用二进制日志,用于数据库复制。server-id
: 用于标识复制中的不同 MySQL 服务器的唯一标识。innodb_buffer_pool_size
: InnoDB 存储引擎的缓冲池大小。max_connections
: 设置最大连接数。slow_query_log
: 开启慢查询日志,记录执行时间超过long_query_time
的查询。max_allowed_packet
: 设置最大允许的数据包大小。bind-address
: 允许远程连接的地址。wait_timeout
: 设置连接的超时时长。
注意事项
- 安全性配置: 在MySQL安装后运行安全脚本是非常重要的,它将帮助您设置root密码、删除匿名用户、禁止远程root登录等,从而保护您的数据库系统。
- 防火墙配置: 如果您的CentOS系统启用了防火墙,确保打开3306端口以允许MySQL的连接。
- 定期备份: 定期备份数据库是非常重要的,以防数据丢失。您可以使用mysqldump命令或者第三方的备份工具来进行数据库备份。
- 权限管理: 在生产环境中,设置合理的用户权限和访问控制非常重要。不要将root用户用于生产环境,根据需要创建有限权限的用户。