欢迎投稿

今日深度:

阿里云ECS部署MariaDB,配置问题及排除思路总结,阿里mariadb

阿里云ECS部署MariaDB,配置问题及排除思路总结,阿里mariadb


因小程序需要部署服务器端进行联调,所以在阿里云ECS 部署了MariaDB,部署过程基本一步一个坑~踩出来的

故简单复盘,遇到问题 ,一定要定位到原因再 再进行有序的排查~

不禁让我想起去年阿里面试 问我服务器连接不上问题排查的思路,现在的思路比当时又上了一层楼吧~

 

登录:

本地连接:mysql -u root -p

本地远程连接:mysql -h yourip -u user -p

 

问题:

1.网络监测

只要可以ping通,说明网络没问题

2.端口监测

查看端口监控状态

netstat -talnp

若是0.0.0.0:3306 说明已对所有地址监听,若没有可在my.conf里配置

3.防火墙监测

查看防火墙状态

iptables --list

4.mysql配置文件检查

  1. 检查my.cnf的配置,bind-address=addr可以配置绑定ip地址。
  2. 不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。
  3. #ps -aux | grep mysql 查看进程ID是3340
  4. #ll /proc/3340 查看进程程序情况,找配置文件或者#which mysql 找程序路径

5.mysql访问权限

  1. 进入mysql数据库
  2. $mysql -u root -p
  3. >use mysql;
  4. >select host,user from user;
  5. MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost只能本机访问;
  6. 其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。

6.阿里云ECS安全组中设置 配置规则

头一天晚上本来早早部署好准备测试,搞到睡觉都没弄好~

睡了一觉突然想起来是不是跟阿里云什么配置有关,果然。。。

增加入方向 MariaDB的3306端口的监听权限~谢谢啊,让我又精通了mysql配置~

 

 

远程连接问题参考:

https://www.linuxidc.com/Linux/2017-10/148068.htm

https://www.2cto.com/database/201401/269578.html

https://jingyan.baidu.com/article/95c9d20dac9040ec4f75617a.html

https://blog.csdn.net/qq_26816591/article/details/52462740

增加本地防火墙策略

 

防火墙:

centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可: 

systemctl stop firewalld.service && systemctl disable firewalld.service

systemctl start firewalld.service && systemctl enable firewalld.service

centos7没有iptables

1 关闭防火墙-----service iptables stop 

2 启动防火墙-----service iptables start 

3 重启防火墙-----service iptables restart 

4 查看防火墙状态--service iptables status 

5 永久关闭防火墙--chkconfig iptables off 

6 永久关闭后启用--chkconfig iptables on

 

 

MariaDb的安装

 

yum install mariadb mariadb-server #询问是否要安装,输入Y即可自动安装

 

systemctl start mariadb.service #启动MariaDB

systemctl stop mariadb.service #停止MariaDB

systemctl restart mariadb.service #重启MariaDB

systemctl enable mariadb.service #设置开机自动启动

 systemctl disenable mariadb.service #设置开机自启关闭

 

创建用户

  • CREATE USER account [IDENTIFIED BY ‘password’];

 CREATE USER 'yunqi'@'%' IDENTIFIED BY 'yunqi';

 

MariaDB [(none)]> CREATE USER 'yunqi'@'IP.%' IDENTIFIED BY 'yangfan';

云栖上线后,通过此方式建立数据库授权

MariaDB [(none)]> CREATE USER 'yunqi'@'%.yunqilive.cn' IDENTIFIED BY 'yunqi';

云栖上线后,通过此方式建立数据库授权

MariaDB [(none)]> CREATE USER 'yunqi'@'%' IDENTIFIED BY 'yunqi&';

在测试阶段使用 通配符 来授权所有用户

 

设置密码

 UPDATE mysql.user SET password = PASSWORD('yunqi&maria') WHERE USER = 'yunqi';

set password for 'yunqi'@'%' =password('yunqi&');

 

用户管理

https://www.cnblogs.com/f-ck-need-u/p/8994220.html

 

用户授权(其中 with grant option 表示拥有该权限后的用户可以给别的用户授予自身所拥有的权限。)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.222.1' IDENTIFIED BY 'password' WITH GRANT OPTION;

grant all on yunqi to yunqi identified by 'password';

grant all on yunqi.* TO yunqi@'%' IDENTIFIED BY 'password';

 

 

//取消权限 

revoke all on *.* from 'root'@'%'; 

delete from user where  user='user' and  host='%';,host from user;

//刷新并生效权限

flush privileges;

 

此时发现问题:local不能登录yunqi用户,报错:ERROR 1045 (28000): Access denied for user 'yunqi'@'localhost' (using password: YES)

解决方式参考:https://blog.csdn.net/u010098331/article/details/50730309

 

PS:

| GRANT USAGE ON *.* TO 'yunqi'@'%' IDENTIFIED BY PASSWORD '*B717581CBB1306AEA99BAD57CB004F51B4F5BDDC' |

| GRANT ALL PRIVILEGES ON `yunqi`.* TO 'yunqi'@'%'                                                     |

| GRANT ALL PRIVILEGES ON `yunqi`.`yunqi` TO 'yunqi'@'%'

注意:all不能和*.*一起使用的,不然就报错了。

 

find 目录 -name “”

grep -rn "bind-address" *

www.htsjk.Com true http://www.htsjk.com/mariadb/34756.html NewsArticle 阿里云ECS部署MariaDB,配置问题及排除思路总结,阿里mariadb 因小程序需要部署服务器端进行联调,所以在阿里云ECS 部署了MariaDB,部署过程基本一步一个坑~踩出来的 故简单复盘,遇到问...
相关文章
    暂无相关文章
评论暂时关闭