在 CentOS 中安装 MySQL

2023-09-23 10:27:05 浏览数 (1)

1. 下载安装 MySQL yum 仓库

请按照自己的系统版本选择自己喜欢的 MySQL版本

代码语言:javascript复制
uname -a
或者
lsb_release -a

MySQL yum 仓库地址:

https://repo.mysql.com/

代码语言:javascript复制
CentOS 8
wget https://repo.mysql.com/mysql80-community-release-el8-1.noarch.rpm 
yum localinstall mysql80-community-release-el8-1.noarch.rpm

代码语言:javascript复制
CentOS 7
wget https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm 
yum localinstall mysql80-community-release-el7-1.noarch.rpm

2. 安装 MySQL 8 社区服务器

执行以下命令安装 MySQL 8:

代码语言:javascript复制
yum install mysql-community-server -y

3. 启动 MySQL 服务

使用以下命令启动 mysql 服务:

CentOS 8 或 CentOS 7

代码语言:javascript复制
systemctl start mysql

4. 显示 root 用户的默认密码

安装 MySQL 8.0 时,会自动为 root 用户生成一个临时密码,并记录在日志文件里。请使用以下命令查看 root 用户的临时密码:

代码语言:javascript复制
grep "A temporary password" /var/log/mysqld.log

这是输出:

[Note] A temporary password is generated for root@localhost: **************

重要!!!本地的临时密码是不同的。要根据此密码来更改 root 用户的密码。

5. MySQL 安全配置

执行以下 mysql_secure_installation 命令来保护 MySQL 服务器:

代码语言:javascript复制
mysql_secure_installation

它会提示您输入 root 帐户的当前密码:

代码语言:javascript复制
Enter password for user root:

输入上面的临时密码,然后按下回车键。将显示以下消息:

The existing password for the user account root has expired. Please set a new password.

代码语言:javascript复制
New password:
Re-enter new password:

输入 root 用户的新密码和确认密码,不要告诉别人哦!!!

配置过程中它会提示配置一些安全选项,为了服务器的安全,应该选择 y。这些问题包括:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

删除匿名用户?(按 y|Y 表示是,任何其他键表示否):y

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

禁止远程 root 登录?(按 y|Y 表示是,任何其他键表示否):y

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

删除测试数据库并访问它?(按 y|Y 表示是,任何其他键表示否):y

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

现在重新加载权限表?(按 y|Y 表示是,任何其他键表示否):y

6. MySQL 服务控制命令

安装完成后,MySQL 服务就会自动启动。我们可以通过以下几个命令查看 MySQL 服务的状态,启动、停止、重启 MySQL 服务器:

CentOS 8

代码语言:javascript复制
查看 MySQL 服务器状态: systemctl status mysqld
启动 MySQL 服务器: systemctl start mysqld
停止 MySQL 服务器: systemctl stop mysqld
重启 MySQL 服务器: systemctl restart mysqld
配置 MySQL 服务器自启动: systemctl enable mysqld

7. 连接到 MySQL 服务

使用以下命令连接到 MySQL 服务器:

代码语言:javascript复制
mysql -u root -p

然后根据提示输入 root 帐户的密码,并按 Enter 键。验证通过后,将显示以下输出,表示已经进入了 MySQL 的控制台:

代码语言:javascript复制
mysql>

使用 SHOW DATABASES 显示当前服务器中的所有数据库:

代码语言:javascript复制
mysql> show databases;

输出:

代码语言:javascript复制
 -------------------- 
| Database           |
 -------------------- 
| information_schema |
| mysql              |
| performance_schema |
| sys                |
 -------------------- 
4 rows in set (0.05 sec)

上面显示的数据库,是 MySQL 服务器自带数据库。

8.远程连接

验证root用户是否允许远程登录

例如你的host主机IP是192.168.0.118,用如下命令在Linux主机上验证是否可以远程登录;

注意把密码换成你的MySQL数据库的实际root密码,IP换成你的实际主机地址。

代码语言:javascript复制
[root@localhost ~]# mysql -uroot -p 密码 -h 192.168.0.118

Warning: Using a password on the command line interface can be insecure.

ERROR 1130 (HY000): Host '192.168.170.128' is not allowed to connect to this MySQL server

报以上错误表示root用户名不能远程登录,按照以下步骤设置远程访问权限。

连接数据库

代码语言:javascript复制
[root@localhost ~]# mysql -uroot -pcharles

选择mysql数据库

代码语言:javascript复制
mysql> use mysql

设置访问权限

代码语言:javascript复制
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

其中"*.*"代表所有资源所有权限, “'root'@%”其中root代表账户名,%代表所有的访问地址。IDENTIFIED BY '密码',换成数据库root用户的密码,WITH GRANT OPTION表示允许级联授权。

刷新访问权限表

代码语言:javascript复制
mysql> FLUSH PRIVILEGES;

查看用户表验证是否添加成功

查询结果出现最后一行表示添加权限成功

代码语言:javascript复制
mysql> SELECT User, Password, Host FROM user;
代码语言:javascript复制
MySQL5.7以上使用这个!!!!!
select User,authentication_string,Host from mysql.user;

验证远程登录

执行如下语句,如果能成功连接上就证明远程登录可用。

代码语言:javascript复制
[root@localhost ~]# mysql -uroot -p 密码 -h 192.168.0.118

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

0 人点赞