当前位置: 首页 > article >正文

在 CentOS 中安装 MySQL(无坑版)

1. 下载安装 MySQL yum 仓库

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

uname -a
或者
lsb_release -a

MySQL yum 仓库地址:

https://repo.mysql.com/

CentOS 8
wget https://repo.mysql.com/mysql80-community-release-el8-1.noarch.rpm 
yum localinstall mysql80-community-release-el8-1.noarch.rpm

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:

yum install mysql-community-server -y

3. 启动 MySQL 服务

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

CentOS 8 或 CentOS 7

systemctl start mysql

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

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

grep "A temporary password" /var/log/mysqld.log

这是输出:

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

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

5. MySQL 安全配置

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

mysql_secure_installation

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

Enter password for user root:

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

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

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

查看 MySQL 服务器状态: systemctl status mysqld
启动 MySQL 服务器: systemctl start mysqld
停止 MySQL 服务器: systemctl stop mysqld
重启 MySQL 服务器: systemctl restart mysqld
配置 MySQL 服务器自启动: systemctl enable mysqld

7. 连接到 MySQL 服务

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

mysql -u root -p

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

mysql>

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

mysql> show databases;

输出:

+--------------------+
| 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换成你的实际主机地址。

[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用户名不能远程登录,按照以下步骤设置远程访问权限。

连接数据库

[root@localhost ~]# mysql -uroot -pcharles

选择mysql数据库

mysql> use mysql

设置访问权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

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

刷新访问权限表

mysql> FLUSH PRIVILEGES;

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

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

mysql> SELECT User, Password, Host FROM user;
MySQL5.7以上使用这个!!!!!
select User,authentication_string,Host from mysql.user;

验证远程登录

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

[root@localhost ~]# mysql -uroot -p 密码 -h 192.168.0.118


http://www.kler.cn/a/313697.html

相关文章:

  • javascript 函数【知识点整理】
  • 券商隔夜单自动下单交易接口
  • 后端:Aop 面向切面编程
  • 基于matlab的CNN食物识别分类系统,matlab深度学习分类,训练+数据集+界面
  • 计算机的错误计算(一百五十二)
  • 《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>
  • No operations allowed after statement closed
  • WPF TextBox 控件文本水平垂直居中
  • 写一个自动化记录鼠标/键盘的动作,然后可以重复执行的python程序
  • 华为云分布式缓存服务DCS 8月新特性发布
  • Android-UI设计
  • js 将二进制文件流,下载为excel文件
  • 2024“华为杯”中国研究生数学建模竞赛(E题)深度剖析|数学建模完整过程+详细思路+代码全解析
  • 【Linux取经之路】软件包管理器yum编辑器vim及其配置
  • 进程间关系与进程守护
  • 浅析OceanBase数据库的向量化执行引擎
  • CSS中如何实现鼠标悬停效果?
  • 数据结构:(牛客OR36)链表的回文结构
  • (笔记自用)LeetCode:快乐数
  • mysql时间戳格式化yyyy-mm-dd
  • kubeadm方式安装k8s+基础命令的使用
  • 二层、三层网络基本原理
  • 缓存技巧 · Spring Cache Caffeine 高性能缓存库
  • Github 2024-09-20 Java开源项目日报Top10
  • 【快手】前端校招一面
  • 深入理解Python中的时间表示:Unix时间点、毫秒和微秒,以及time模块