CentOS7安装MySQL

2023-05-16

CentOS默认安装有MariaDB,这是MySQL的分支。

但还是要在系统中安装MySQL,且安装完成后可直接覆盖MariaDB。


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

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面命令就直接下载了安装用的Yum Repository,大概25KB,然后就可以直接yum安装。

yum -y install mysql57-community-release-el7-10.noarch.rpm

安装MySQL服务器(覆盖之前的mariadb)

yum -y install mysql-community-server

# failed to start mysqld.service
# 出现这个问题是因为Mysql的GPG升级,需重新获取

# 执行
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 再执行
yum -y install mysql-community-server

至此MySQL安装完成,然后是对MySQL的一些设置。


2、MySQL数据库设置

首次启动MySQL

systemctl start mysqld.service

查看MySQL运行状态

systemctl status mysqld.service

MySQL已正常运行,不过要进入MySQL还得先找出此时root用户的密码

通过如下命令可在日志文件中找出密码:

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

如下命令进入数据库:

mysql -uroot -p

输入初始密码(是上面图片最后面的no;e!5>>alfg),此时不能做任何事情,因为MySQL默认必须修改密码后才能操作数据库:

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

其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功

如果设置密码简单,出现

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解决办法:

1、查看 mysql 初始的密码策略

show variables like 'validate_password%';

若显示如下问题:

mysql> show variables like 'validate_password%';
Empty set, 1 warning (0.00 sec)

处理

出现这个问题是因为并没有安装 validate_password 插件。

具体操作如下:

/** 安装插件 **/
mysql> INSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.10 sec)

mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| 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      |
+--------------------------------------+--------+
7 rows in set, 1 warning (0.00 sec)

2、设置密码的验证强度等级

set global validate_password_policy=LOW;

3、当前密码长度为 8 ,设置为 6 位的密码

set global validate_password_length=6;

4、重新设置密码

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

3、开启mysql的远程访问

执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):

grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;
grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;

然后再下面命令

flush privileges; 

4、为firewalld添加开放端口

添加mysql端口3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新载入

firewall-cmd --reload

5、更改mysql的语言

登录mysql,输入status

status

可以看到,Server characterset不是utf-8

因此先退出mysql,然后修改/etc/my.cnf文件内容

vim /etc/my.cnf

进入文件后,新增四行代码:

[client]
default-character-set=utf8

...

character-set-server=utf8
collation-server=utf8_general_ci

 保存更改后的my.cnf文件后,重启mysql,输入status再次查看

service mysqld restart

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS7安装MySQL 的相关文章

随机推荐