在 CentOS 上安装和配置 MySQL
CentOS 是一种流行的 Linux 发行版,广泛用于服务器环境,MySQL 是一个开源的关系数据库管理系统,被广泛应用于网站和应用程序的数据存储,本文将指导您如何在 CentOS 上安装和配置 MySQL。
系统更新
在开始安装 MySQL 之前,首先确保您的系统是最新的,打开终端并执行以下命令:
sudo yum update -y
安装 MySQL
CentOS 7 及更高版本默认使用 MariaDB,它是 MySQL 的一个分支,如果您希望安装原版的 MySQL,您需要添加 MySQL Yum Repository。
添加 MySQL Yum Repository
下载并安装 MySQL Yum Repository:
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
安装 MySQL Server
安装 MySQL Server:
sudo yum install mysql-server -y
启动并启用 MySQL 服务
安装完成后,启动 MySQL 服务并将其设置为开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld
获取临时密码
MySQL 安装完成后,会生成一个临时密码,您可以使用以下命令找到该密码:
sudo grep 'temporary password' /var/log/mysqld.log
输出类似于:
[Note] A temporary password is generated for root@localhost: xxxx
记下这个临时密码,您将在下一步中使用它。
运行 MySQL 安全脚本
MySQL 提供了一个安全脚本,用于提高安全性,运行以下命令:
sudo mysql_secure_installation
按照提示进行操作,以下是一些常见的选项:
Set root password? [Y/n]: y
New password: (输入您的新密码)
Re-enter new password: (再次输入您的新密码)
Remove anonymous users? [Y/n]: y
Disallow root login remotely? [Y/n]: y
Remove test database and access to it? [Y/n]: y
Reload privilege tables now? [Y/n]: y
登录 MySQL
使用以下命令登录到 MySQL:
mysql -u root -p
输入您在步骤 5 中设置的新密码。
配置 MySQL
在 MySQL 中,您可以根据需要进行各种配置,以下是一些常见的配置示例:
创建数据库
CREATE DATABASE mydatabase;
创建用户并赋予权限
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES;
更改编码
编辑/etc/my.cnf
文件,添加或修改以下行:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
然后重新启动 MySQL 服务:
sudo systemctl restart mysqld
防火墙配置
如果您的服务器启用了防火墙,您需要允许 MySQL 的端口(默认是 3306):
sudo firewall-cmd --permanent --add-service=mysql sudo firewall-cmd --reload
远程访问配置
如果需要从远程访问 MySQL,您需要在/etc/my.cnf
文件中注释掉bind-address
:
bind-address = 127.0.0.1
然后重新启动 MySQL 服务:
sudo systemctl restart mysqld
确保防火墙允许外部访问:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="YOUR_IP_ADDRESS" port protocol="tcp" port="3306" accept' sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv6" source address="YOUR_IPV6_ADDRESS" port protocol="tcp" port="3306" accept' sudo firewall-cmd --reload
备份与恢复
定期备份 MySQL 数据是非常重要的,以下是一个简单的备份和恢复示例:
备份
mysqldump -u root -p mydatabase > mydatabase_backup.sql
恢复
mysql -u root -p mydatabase < mydatabase_backup.sql
FAQs
Q1: 如何更改 MySQL 服务的端口?
要更改 MySQL 服务的端口,可以编辑/etc/my.cnf
文件,找到[mysqld]
部分,添加或修改以下行:
[mysqld] port=3307
然后重新启动 MySQL 服务:
sudo systemctl restart mysqld
确保防火墙允许新的端口:
sudo firewall-cmd --permanent --add-port=3307/tcp sudo firewall-cmd --reload
Q2: 如何重置 MySQL root 用户的密码?
要重置 MySQL root 用户的密码,首先停止 MySQL 服务:
sudo systemctl stop mysqld
然后以跳过授权表的方式启动 MySQL:
sudo mysqld_safe --skip-grant-tables &
登录到 MySQL:
mysql -u root
使用以下 SQL 语句重置密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
退出 MySQL:
exit;
停止跳过授权表的 MySQL 实例:
sudo pkill mysqld_safe sudo systemctl start mysqld
以上内容就是解答有关“centos linux mysql”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。