侧边栏壁纸
博主头像
Adrian博主等级

曙光在头上,不抬起头,便永远只能看见物质的闪光。

  • 累计撰写 108 篇文章
  • 累计创建 67 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

CentOS 7.9 安装与配置 MySQL 5.7

Adrian
2021-08-15 / 0 评论 / 0 点赞 / 475 阅读 / 3,600 字
温馨提示:
本文最后更新于 2021-08-31,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

安装前检查

先检查是否已安装过

rpm -qa | grep -i mysql
  • 如果安装过,需删除之前的版本(谨慎操作,先确定是否可以删除)

以下是我之前安装的版本,可能和你的不一定一样,如果有的话,就rpm -e 命令移除即可。

rpm -e mysql-community-common-5.7.34-1.el7.x86_64
rpm -e mysql-community-server-5.7.34-1.el7.x86_64
rpm -e mysql-community-libs-5.7.34-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.34-1.el7.x86_64
rpm -e mysql57-community-release-el7-11.noarch
rpm -e mysql-community-client-5.7.34-1.el7.x86_64

删除安装目录

#查找 mysql 相关目录
find / -name mysql
whereis mysql
#删除目录
rm -rfv /xx/xx
#删除配置文件
rm -rfv /etc/my.cnf
rm -rf /root/.mysql_sercret

开始安装

下载安装包,如果没有安装wget,请安装,步骤略

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安装MySQL源

yum -y localinstall mysql57-community-release-el7-11.noarch.rpm

安装MySQL(时间略长,取决于网速及硬件配置)

yum -y install mysql-community-server

启动mysql 服务

systemctl start mysqld

设置开机启动

systemctl enable mysqld && systemctl daemon-reload

获取数据库临时密码

grep 'A temporary password' /var/log/mysqld.log | tail -1

登录MySQL

输入刚才copy的密码:rf4m_jGq7plk

mysql -u root -p

设置密码策略

SET GLOBAL validate_password_policy=LOW;

修改密码

“Xxx123123”是你的密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xxx123123';

设置远程访问

远程连接可以设置root账号,也可以单独创建一个账号,专门用于远程管理,毕竟root账号的权限过大,一旦密码泄漏严重影响数据库安全。

# 登录MySQL
[root@localhost ~]# mysql -u root -p
# 进入mysql库
mysql> use mysql;
# 更新域属性,'%'表示允许任何主机访问
mysql> update user set host="%" where user ="root";
# 全局特权所有数据库
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
# 生效配置
mysql> FLUSH PRIVILEGES;

刷新权限

FLUSH PRIVILEGES;

修改数据库存放位置

数据库存放在系统盘始终是不安全的,所以一般我们会配置一个数据盘,用于单独存放数据库文件,在前面的【系统通用配置】中,我们已经挂载了磁盘/dev/sdb至/data,这个就是专用用于数据库数据存储的,详细MySQL修改方法如下:

# 创建数据库存放目录
mkdir /data/mysql
# 配置权限
chown -vR mysql:mysql /data/mysql/
chmod -vR 700 /data/mysql/
# 停止数据库服务
systemctl stop mysqld
# 复制原数据库至新目录
cp -av /var/lib/mysql/* /data/mysql/

# 修改/etc/my.cnf配置,如下所示:
[root@localhost ~]# cat /etc/my.cnf | grep -v "^#" | grep -v "^$"
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#Mysql区分大小写(大小写敏感)配置
lower_case_table_names=1

[client]
port=3306
socket=/data/mysql/mysql.sock

[mysqld_safe]
socket=/data/mysql/mysql.sock
nice=0

# 启动数据库服务
systemctl start mysqld && systemctl status mysqld

# 确保数据库启动成功以后,我们就可以删除不再需要的原数据库文件了
rm -rf /var/lib/mysql

MySQL基础操作

这里简单说一下单独创建用户,并允许远程连接,以及添加、删除用户&数据库的操作。

# 登录MySQL
[root@localhost ~]# mysql -u root -p

# 创建数据库
mysql> CREATE DATABASE test;

# 创建用户db_test并允许远程连接
mysql> CREATE USER 'db_test'@'%' IDENTIFIED BY 'password';

# 授权允许远程访问test数据库的所有表
mysql> GRANT ALL ON test.* TO 'db_test'@'%';

# 查询所有用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
+------------------------------------+
| query                              |
+------------------------------------+
| User: 'db_test'@'%';               |
| User: 'mysql.session'@'localhost'; |
| User: 'mysql.sys'@'localhost';     |
| User: 'root'@'localhost';          |
+------------------------------------+
6 rows in set (0.01 sec)

# 查询数据库
mysql> show databases;
+-----------------------+
| Database              |
+-----------------------+
| information_schema    |
| mysql                 |
| performance_schema    |
| sys                   |
| test                  |
+-----------------------+
6 rows in set (0.00 sec)

# 删除数据库
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

# 更新指定用户密码
mysql> UPDATE user SET authentication_string=PASSWORD('密码') WHERE User='db_test' and Host='%';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 1

# 删除用户
mysql> drop user 'db_test'@'%';
Query OK, 0 rows affected (0.00 sec)

# 生效配置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

# 退出数据库
mysql> exit

MySQL 常用命令

# 查看数据存储目录
show global variables like "%datadir%";
#创建数据库
create database db_name; 
#显示所有的数据库
show databases;
#删除数据库
drop database db_name;
#选择数据库
use db_name;
create table tb_name (字段名 varchar(20), 字段名 char(1));
#创建数据表模板
#显示数据表
mysql> show tables;
#显示表结构
mysql> desc tb_name;
#删除表
mysql> drop table tb_name;
0

评论区