当前位置:首页 > 行业动态 > 正文

如何在CentOS Linux系统上安装和配置MySQL数据库?

CentOS Linux是一种流行的企业级操作系统,它支持MySQL数据库。MySQL是一个开源的关系型数据库管理系统,常用于Web应用以存储和管理数据。

在 CentOS 上安装和配置 MySQL

如何在CentOS Linux系统上安装和配置MySQL数据库?  第1张

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”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

0