CentOS 7配置MySQL环境

本文详细介绍了在CentOS7上配置MySQL5.7的步骤,包括删除旧版本、添加MySQL源、安装、启动和停止服务、修改密码、调整密码策略、允许root远程访问以及设置默认编码。此外,还提供了常用数据库操作的示例。
摘要由CSDN通过智能技术生成

CentOS 7配置MySQL环境

0.删除已安装的MySQL(可跳过)

  • 检查MariaDB
rpm -qa|grep mariadb
  • 若上一步输出不为空,则对每一项输出进行删除,例如:
rpm -e --nodeps mariadb-server
rpm -e --nodeps mariadb
rpm -e --nodeps mariadb-libs
  • 检查MySQL
rpm -qa|grep mysql
  • 如果有输出同上一步删除

1.添加MySQL的yum源

  • 官网地址:https://dev.mysql.com/downloads/repo/yum/

  • 查看系统版本

cat /etc/redhat-release
  • 在官网下载对应版本的rpm文件,如:
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  • 安装MySQL源

使用sudo rpm-Uvh命令安装,选择上面下载的文件,如:

sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

2.选择MySQL版本

源默认安装的是最新的版本,但是MySQL5.6和MySQL8.0是互不兼容的,如果要安装最新版本的可以跳过这一步

  • 查看所有支持的MySQL版本:
yum repolist all | grep mysql
  • 切换版本

切换版本需要先禁用当前版本,然后再启用对应版本。

如果多个版本被同时启用,默认会安装最新的那个

例如要安装MySQL5.7版本:

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

对应的版本信息应该要在上一步操作中列举出来

  • 另一种方法

可以直接修改**/etc/yum.repos.d/mysql-community.repo**文件

将对应版本的enabled属性值改为1表示启用,0表示禁用

如:禁用8.0版本,将enabled改为0:

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
  • 检查当前的MySQL仓库
yum repolist enabled | grep mysql

确定显示的只有一个版本的MySQL

3.安装MySQL

  • 使用以下命令安装MySQL
sudo yum install mysql-community-server
  • 由官方源进行安装可能会非常慢,这时可以下载国内镜像文件到缓存,使得安装时自动跳过下载过程
    • 国内镜像:http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/
    • 国内镜像:http://uni.mirrors.163.com/mysql/Downloads/

找到对应版本的文件(可以先执行上一部操作,看哪个文件下载速度慢,就下载哪个,几个小文件就算下载速度慢也要不了多久)

例如:

mysql-community-server-5.7.31-1.el7.x86_64.rpm            4% [=                  ]  14 kB/s |  76 MB

这时就可以在国内镜像中找到mysql-community-server-5.7.31-1.el7.x86_64.rpm这个文件下载下来

wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-community-server-5.7.31-1.el7.x86_64.rpm
  • 然后将下载的文件移到缓存
mv mysql-community-server-5.7.31-1.el7.x86_64.rpm /var/cache/yum/x86_64/7/mysql57-community/packages/
  • 再次执行安装命令
sudo yum install mysql-community-server

4.启动和停止

  • 启动MySQL
sudo systemctl start mysqld.service
  • 查看状态
sudo systemctl status mysqld.service
  • 停止MySQL
sudo systemctl stop mysqld.service
  • 重启MySQL
sudo systemctl restart mysqld.service

5.修改密码

  • 第一次启动MySQL会生成初始root账号和初始密码,用以下命令查看初始密码:
sudo grep 'temporary password' /var/log/mysqld.log
  • 修改初始密码:

启动MySQL

mysql -uroot -p

在MySQL命令行中更改密码

将123456改为需要的密码

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

6.修改密码安全策略

如果在上一步中修改密码失败,有可能是密码安全性太低不符合密码策略导致(具体原因参考输出信息),可以修改密码安全性再次修改

  • 查看MySQL密码策略

    • 在MySQL命令行中输入:
    select @@validate_password_policy;
    

    显示:

    +----------------------------+
    | @@validate_password_policy |
    +----------------------------+
    | MEDIUM                     |
    +----------------------------+
    1 row in set (0.00 sec)
    
    • 在MySQL命令行中输入:
    SHOW VARIABLES LIKE 'validate_password%';
    

    显示:

    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password_check_user_name    | OFF    |
    | validate_password_dictionary_file    |        |
    | validate_password_length             | 8      |
    | validate_password_mixed_case_count   | 1      |
    | validate_password_number_count       | 1      |
    | validate_password_policy             | MEDIUM |
    | validate_password_special_char_count | 1      |
    +--------------------------------------+--------+
    7 rows in set (0.00 sec)
    
  • 参数说明:

    • validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。

    • validate_password_length:密码最小长度,参数默认为8,它有最小值的限制

      • 最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
    • validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。

    • validate_password_number_count:密码至少要包含的数字个数。

    • validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。

      • 有以下取值:

        PolicyTests Performed
        0 or LOWLength
        1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
        2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file

        默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

    • validate_password_special_char_count:密码至少要包含的特殊字符数。

  • 修改配置

在MySQL命令行中输入:

set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;
  • 检查设置
SHOW VARIABLES LIKE 'validate_password%';
  • 设置简单密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');

7.允许root远程访问

在MySQL命令行中输入以下指令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

8.设置默认编码

  • 可以用vim修改**/etc/my.cnf**文件
vim /etc/my.cnf

在[client]段增加:default-character-set=utf8

在[mysql]段增加:default-character-set=utf8

在[mysqld]段增加:character-set-server=utf8

[client]
default-character-set = utf8

[mysqld]
character-set-server = utf8

[mysql]
default-character-set = utf8
  • 重启MySQL服务
sudo systemctl restart mysqld.service
  • 进入mysql
mysql -uroot -p
  • 在MySQL命令行中查看status

可以看到Server,Db,Client,Conn等选项的字符集为utf8

status;
  • 查看MySQL字符集
show variables like 'character_set_%';

参数说明:

character_set_client:客户端请求数据的字符集。

character_set_connection:从客户端接收到数据,然后传输的字符集。

character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,使 character_set_server 指定的字符集,此参数无需设置。

character_set_filesystem:把操作系统上文件名转化成此字符集,即把 character_set_client 转换 character_set_filesystem,默认 binary 即可。

character_set_results:结果集的字符集。

character_set_server:数据库服务器的默认字符集。

character_set_system:这个值总是 utf8,不需要设置,存储系统元数据的字符集。

9.常用操作

CREATE DATABASE <datebasename> CHARACTER SET utf8; # 创建数据库
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; # 创建用户
GRANT privileges ON databasename.tablename TO 'username'@'host'; # 分配权限
SHOW GRANTS FOR 'username'@'host'; # 查看权限?
REVOKE privilege ON databasename.tablename FROM 'username'@'host'; # 删除权限
DROP USER 'username'@'host'; # 删除用户
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值