在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。
1 下载并安装MySQL官方的 Yum Repository
添加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
此时才算真的完成了。
