安装过程
安装MySQL,yum安装
wget http://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
rpm -ivh mysql80-community-release-el7-6.noarch.rpm
yum -y install mysql-community-server
安装完成后启动服务
systemctl status mysqld
查看是否已经开启了开机自启
systemctl is-enabled mysqld
如果显示enabled,表示已经开启了开机自启,
如果显示disabled,表示未开启,执行命令
systemctl enable mysqld
root用户一开始会有一个初始密码,执行以下命令查看
cat /var/log/mysqld.log | grep password
得到初始密码,复制或者记下来
接下来用该密码登录root用户,并修改root密码
mysql -u root -p # 执行后,输入刚刚查询到的初始密码,回车
mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '您的密码';
作为服务器,我们经常需要远程登录数据库,可以设置允许远程登录的用户和访问地址
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
防火墙中将3306端口开放
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
# --permanent参数为永久生效,如果没有此参数 服务器重启后配置将失效
安装中可能遇到的问题,未遇到可以忽视
- 在执行
rpm -ivh mysql80-community-release-el7-6.noarch.rpm
时报了个错
[root@VM-4-2-centos ~]# rpm -ivh mysql80-community-release-el7-6.noarch.rpm
warning: mysql80-community-release-el7-6.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
error: Failed dependencies:
mysql-community-release conflicts with mysql80-community-release-el7-6.noarch
该错误是因为我之前装错了版本,需要删除rpm依赖包并清除yum缓存
查看MySQL安装情况
[root@VM-4-2-centos ~]# rpm -qa | grep -i mysql
mysql-community-release-el7-5.noarch
删除这个依赖包
[root@VM-4-2-centos ~]# rpm -e mysql-community-release-el7-5.noarch
清除yum缓存
[root@VM-4-2-centos ~]# yum clean all
重新建立yum缓存
[root@VM-4-2-centos ~]# yum makecache
然后重新尝试安装
- 在执行
yum -y install mysql-community-server
的最后报了个错:
warning: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-common-8.0.30-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022"
原因是yum源开启了GPG校验,需要在/etc/pki/rpm-gpg 目录下有对应的安装文件公钥文件
解决方法有两个
a. 去官网找到这个文件,下下来,copy到/etc/pki/rpm-gpg下
b. 关闭PGP校验
我的是个人环境,就直接关闭了PGP校验
[root@VM-4-2-centos ~]# cd /etc/yum.repos.d
[root@VM-4-2-centos yum.repos.d]# vi mysql-community.repo
# Enable to use MySQL 5.7
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
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-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql-cluster-7.6-community]
name=MySQL Cluster 7.6 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/$basearch
enabled=0
"mysql-community.repo" 64L, 2062C
将gpgcheck字段值改为0即可,这里我只改了mysql80-community的,有需要的自行修改
然后重新执行yum install 即可
- 修改密码时报了以下错误
mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
原因已经告诉你了,密码安全性不够高,有些时候我们安装的MySQL是个人使用的,想设置一个方便记忆的简单密码,这时候可以先设置一个稍复杂的密码
mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '包含大小写字母、数字、特殊字符的密码';
然后查看密码安全策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+--------+
| Variable_name | Value |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0 |
| validate_password.check_user_name | ON |
| 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 |
+-------------------------------------------------+--------+
8 rows in set (0.01 sec)
validate_password.policy=MEDIUM,密码验证强度等级为中等
validate_password.length=8,指定密码长度为8
将密码验证强度等级修改为LOW
mysql> set global validate_password.policy=LOW;
将指定密码长度改为6
mysql> set global validate_password.length=6;
再看一下密码安全策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------------------+-------+
| validate_password.changed_characters_percentage | 0 |
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 6 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+-------------------------------------------------+-------+
8 rows in set (0.01 sec)
重新修改密码为简单密码,成功
mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)