在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

1 下载并安装MySQL官方的 Yum Repository

官方下载地址

RPM下载地址

添加MySQL Yum源

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
 
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

#查看MySQL数据库各个版本信息
yum repolist all | grep mysql

 

 

2. 选择安装版本

修改/etc/yum.repos.d/mysql-community.repo 文件,选择MySQL5.7版本

# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0  # 禁止
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0  # 禁止
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1 # 安装
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[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-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

3.安装MySQL服务器。

#执行以下命令安装MySQL
yum install mysql-community-server
#启动mysql(CentOS7中)
systemctl start mysqld.service
#低版本的操作系统可用以下指令
service mysqld start
#查看MySQL状态
systemctl status mysqld.service
#低版本操作系统可用以下指令
service mysqld status

4. 查看并修改密码

$grep "password" /var/log/mysqld.log
2019-04-11T08:17:16.706096Z 1 [Note] A temporary password is generated for root@localhost: ux#bkaM(k1q-
$mysql -u root -p
>ux#bkaM(k1q-
 
# 修改密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'complex password';
mysql>set global validate_password_policy=0;
mysql>set global validate_password_length=1;
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'simple password';

5. 配置开放3306端口

授权的方式允许任何主机访问mysql服务器:【一般采用这个即可,限制端口访问交由firewalld来做】

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

限定ip访问:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'jack'@’10.10.50.127’ IDENTIFIED BY 'password' WITH GRANT OPTION;

配置配置  my.cnf        vim /etc/my.cnf

server_id = 1     
expire_logs_days = 7   # 日志保留时间

mysql 启动日志

cat /var/log/mysqld.log | tail -n 200

  

MySQL数据库设置

  首先启动MySQL

service mysqld restart

安装完成后活生产一个默认的密码,查看默认密码

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

先修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

如果密码设置简单会报错

  原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:

 

  MySQL完整的初始密码规则可以通过如下命令查看:

复制代码
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
复制代码

  密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

 

我的是已经修改过的,初始情况下第一个的值是ON,validate_password_length是8。可以通过如下命令修改:

set global validate_password_policy=0;
set global validate_password_length=1;

  设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如1234之类的。到此数据库的密码设置就完成了。

 

或者

在 vim /etc/my.cnf配置文件中增加

[mysqld]

validate_password=off

然后重启mysql 就 ok了.


重新启动mysqld

/etc/init.d/mysqld restart ( service mysqld restart ) 


重如果想把密码改回来 进入mysql 执行 5.7的数据库没有了password字段 用的是authentication_string字段

mysql> update mysql.user set authentication_string=password('root') where user='root' ;

 

  但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

yum -y remove mysql57-community-release-el7-10.noarch

  此时才算真的完成了。