centos7 安装MySQL5.7和授权远程连接

xiaoxiao2021-02-28  48

安装了几次MySQL都说我依赖包有问题,然后只有重装了。这是copy大神的做法。下一步下一步就行,留着下次需要的时候又装。需要提醒自己的时候密码默认长度是8位,默认不能太简单,需要测试设置简单的话需要修改配置。默认远程连接不对外开放

安装环境:CentOS7 64位 MINI版,安装MySQL5.7

1、配置YUM源

在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/

# 下载mysql源安装包 shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm # 安装mysql源 shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功

shell> yum repolist enabled | grep "mysql.*-community.*"

看到上图所示表示安装成功。 可以修改vim /etc/yum.repos.d/mysql-community.repo源,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。改完之后的效果如下所示:

2、安装MySQL

shell> yum install mysql-community-server

3、启动MySQL服务

shell> systemctl start mysqld

查看MySQL的启动状态

shell> systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled) Active: active (running) since 五 2016-06-24 04:37:37 CST; 35min ago Main PID: 2888 (mysqld) CGroup: /system.slice/mysqld.service └─2888 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 624 04:37:36 localhost.localdomain systemd[1]: Starting MySQL Server... 624 04:37:37 localhost.localdomain systemd[1]: Started MySQL Server.

4、开机启动

shell> systemctl enable mysqld shell> systemctl daemon-reload

5、修改root本地登录密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

shell> grep 'temporary password' /var/log/mysqld.log

shell> mysql -uroot -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

或者

mysql> set password for 'root'@'localhost'=password('MyNewPass4!');

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示:

通过msyql环境变量可以查看密码策略的相关信息:

mysql> show variables like '%password%';

validate_password_policy:密码策略,默认为MEDIUM策略 validate_password_dictionary_file:密码策略文件,策略为STRONG才需要 validate_password_length:密码最少长度 validate_password_mixed_case_count:大小写字符长度,至少1个 validate_password_number_count :数字至少1个 validate_password_special_char_count:特殊字符至少1个 上述参数是默认策略MEDIUM的密码检查规则。

共有以下几种密码策略:

策略检查规则0 or LOWLength1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file

MySQL官网密码策略详细说明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy

修改密码策略

在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件 validate_password_policy=0

如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:

validate_password = off

重新启动mysql服务使配置生效:

systemctl restart mysqld

6、添加远程登录用户

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;

7、配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'

重新启动mysql服务,查看数据库默认编码如下所示:


默认配置文件路径: 配置文件:/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid

=============================这是一个分割线=====================================

安装好了之后按照上面的办法始终不能远程连接到mysql,然后我有找了解决远程连接的方法,这里主要是centos6和7的版本

CentOS7和CentOS6怎样开启MySQL远程访问

CentOS6开启MySQL远程访问

1.开放MySQL访问端口3306

修改防火墙配置文件

vi /etc/sysconfig/iptables 

加入端口配置     

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

重新加载规则

service iptables restart  

2.修改mysql库里的host

登录mysql;

use mysql

update user set host='%' where user='root' and host='localhost';

记得一定还得修改密码,因为这时密码已失效,虽然本地还可以原密码登录,可远程改了host后还是没法访问

UPDATE user SET password=password("root") WHERE user='root'; 

flush privileges;

3.重启mysql,远程就可以访问了

service mysqld restart;

 CentOS7开启MySQL远程访问

CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本使用iptables不一样。按如下方便配置防火墙:

1、关闭防火墙:sudo systemctl stop firewalld.service

2、关闭开机启动:sudo systemctl disable firewalld.service

 

3、安装iptables防火墙

执行以下命令安装iptables防火墙:sudo yum install iptables-services

4、配置iptables防火墙,打开指定端口(CentOS6一样)

5、设置iptables防火墙开机启动:sudo systemctl enable iptables

6、之后的和CentOS6一样

CentOS下防火墙的基本操作命令

CentOS 配置防火墙操作实例(启、停、开、闭端口):

 

注:防火墙的基本操作命令:

查询防火墙状态:

[root@localhost ~]# service   iptables status

停止防火墙:

[root@localhost ~]# service   iptables stop 

启动防火墙:

[root@localhost ~]# service   iptables start 

重启防火墙:

[root@localhost ~]# service   iptables restart

永久关闭防火墙:

[root@localhost ~]# chkconfig   iptables off

永久关闭后启用:

[root@localhost ~]# chkconfig   iptables on

 

1、查看防火墙状态

[root@localhost ~]# service iptables status

 

2、编辑/etc/sysconfig/iptables文件。我们实例中要打开8080端口和9990端口

用编辑器打开/etc/sysconfig/iptables 

 

4、保存/etc/sysconfig/iptables文件,并在终端执行

[root@localhost ~]# service iptables restart 

 

5、从新查看防火墙状态

[root@localhost ~]# service iptables status

 

6、这时候,服务器的8080和9990端口就可以对外提供服务了。

7、其他端口的开放模式就是类似如此开放模式。

转载请注明原文地址: https://www.6miu.com/read-2613949.html

最新回复(0)