安装mariadb/mysql 连接失败问题
在linux下安装mariadb会出现一系列问题
问题1->服务器端不需要用户名密码就可登陆数据库
问题2->php使用mysql不能连接数据库 访问受限
问题3->navicate远程连接数据库失败
在捣鼓一段时间之后然后莫名就可以了,虽然知道是权限方面的问题,但是终究不得要领。为了弄清楚特意找了个新服务器,重新搭建一套ubuntu、php7、mariadb的环境重现一下问题。
具体的安装过程这里略过了啊,网上这方面资料很多。
安装完mariadb第一次登陆是没有登录密码限制的,就是随便输什么密码都可以进入,但是用户名是固定的 root
#mysql -u root -p
空格

注意我这里输入的是空格 然后就进来了.
之后我们看看这是为什么
MariaDB [mysql]> use mysql; MariaDB [mysql]> select user,password,host from user;

这个名为mysql的库是记录mysql相关内容的数据
而user就是记录mysql用户名及密码权限的表可以看到root的密码是空的
下面我们先解决这个问题
先运行命令
MariaDB [mysql]> grant all privileges on *.* to root@"localhost" identified by "123456";
然后我们查看用户及密码
MariaDB [mysql]> select user,password,host from user;
然后我们就会发现必须使用123456这个密码来进图数据库了 问题一解决
下一步我们尝试使用远程工具navicate链接mariadb 

然后通过度娘找到了一些方法
mysql和mariadb中关于root权限管理不同 需要调配
执行两条命令 添加两个用户
MariaDB [mysql]> grant all privileges on *.* to root@"%" identified by "123456"; MariaDB [mysql]> grant all privileges on *.* to root@"127.0.0.1" identified by "123456"; MariaDB [mysql]> flush privileges;
退出数据库 exit;或者ctrl+c
修改mysql的配置文件
# vim /etc/mysql/mariadb.conf.d/50-server.cnf
找到
bind-address = 127.0.0.1
将其注释掉
# bind-address = 127.0.0.1
保存退出 重启mysql
# service mysql restart
再次连接之后我惊喜的发现 还是链接不上,一股烦躁之气渐渐升起。平定一下心神,看看数据库去吧。
MariaDB [mysql]> select * from user;
之后找到这一行 为什么是N呢 这个权限不对啊 改下试试

MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION; MariaDB [mysql]> flush privileges;
重新连接发现

苍天啊 大地啊 绝望啊 ,放弃吧? 开玩笑!
继续查资料发现是端口问题使用
# netstat -aptn执行看看,是否监听在0.0.0.0:3306
重启mysql之后发现监听并没有改变
kill掉3306的进程号 991 再次重启之后我得到了下面几张截图效果


本以为弄到这种程度就可以了 然而现实继续教育了我 navicate远程连接继续失败!!!
其实这时候我对于权限这块还是端口这块我是抱有疑问的 所以我试了下 本地php 使用pdo链接数据库 发现是可以连接操作的 经过以前失败的经验我可以认为权限问题已经解决了。
所以问题二 php使用mysql不能连接数据库访问受限 在倒腾的过程中已经解决了
这里画下重点:一般情况下 到这里数据库连接的问题 已经基本解决了
根据查阅的资料,造成不能连接的原因是 mysql 和 mariadb 对于 root 权限管理是不同的,mariadb对于root的权限默认是不开放Gan_priv权限的。另外对于用户表mariadb添加了两个新字段,is_role和password_expired。数据库的表格数也是不同的,老版mysql是24张表左右 而mariadb是30张左右(这里就不去数各个版本的具体数量了,有个概念)
下面继续直面我的问题
想想如果权限没有问题了 是不是端口问题呢?
然后使用telnet工具本地 cmd 命令行测试端口开放情况
1、安装telnet。我的win7下就没有telnet,在cmd下输入telnet提示没有该命令。于是我们进入控制面板---->程序---->打开或关闭windows功能。然后等一段时间,在出来的对话框把telnet客户端和telnet服务器勾选上,其他的不用管,然后点击确定。这样就安装好了telnet组件了。
2、 下面开始测试某个端口是否开启,比如我测的是47.104.195.152的 3306 这个端口。在cmd下输入
telnet 47.104.195.152 3306

而正常的情况是这样的 跳转一个新的页面 如果有疑问可以测试80 或者22 端口我这里是通的

所以现在已经锁定是端口的问题
下面是一些开放的操作 不过在我这里是没什么用的 怎么开端口加防火墙规则也么用
我用是阿里云的服务器
ss -nltp | grep 3306 查看服务端口是否连接
iptables -nL 查看防火墙端口是否开启
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 开放防火墙3306端口
经过一系列恶心的尝试 发现还是不能接通
既然内部不能改变规则 那就去服务器上 阿里云界面去改试试
这个是案例云安全组里面的内容 经过添加一定的规则 有了下面的内容 这个3306
开始是没有的,添加好了规则之后 重启服务器


ok 链接成功 整理一下回去睡觉了 中间还有很多细节没弄清楚 但是明天还要上班啊
人生什么的还是不要随便怀疑吧 相信自己。
-------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------
这里给大家普及一个阿里云服务器比较实惠的小技巧 在阿里云创建实例的时候 选择抢占实例的选项
很适合开发人员进行一次性试验的时候使用 做一次试验 部署一台云服务器 成本控制在2元以内
抢占式实例 抢占式实例 抢占式实例
这个官方的解释是随时有可能会释放 提前5分钟通知,其实就是把卖不出去的服务器资源便宜卖了,如果资源不够了再及时收回来。批发改零售嘛!一天两天的 是不会被回收的!


因为是一次性的想怎么捣鼓怎么捣鼓 如果想在正式服务器上面捣鼓 也不拦着,如果你吼得住的话!
安装mariadb/mysql 连接失败问题的更多相关文章
- mysql连接失败或出现“Too many connections”错误
mysql连接失败或出现"Too many connections"错误 # 按自己服务器的配置文件路径修改 vi /etc/my.cnf 查找:max_connections 修 ...
- mysql连接失败HikariPool错误
1. mysql连接失败HikariPool错误 1.1. 异常 com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during ...
- CentOS通过yum安装MariaDB(MySQL)无法启动服务或者找不到mysql.sock
转载自:http://www.linuxidc.com/Linux/2016-03/129396.htm 今天在Linux主机(CentOS 7)安装(yum install方式)Mariadb(即开 ...
- CentOS 7 Linux 卸载/安装 Mariadb MySQL mysql 5.7
[root@localhost mysql]# ls mysql-community-client--.el7.x86_64.rpm mysql-community-embedded-compat-- ...
- cent os 安装mariaDB / mySQL 之后初始化的命令
#安装mysql mysql-server,默认安装的是开源的mariaDB和它的server,mariadb-server,安装源中可能有找不到的,就换个名字再找找 yum install -y ...
- mysql 连接失败问题汇集
FHost '192.168.5.128' is not allowed to connect to this MySQL serverConnection closed by foreign hos ...
- 解决idea中mysql连接失败Could not create connection to database server. Attempted reconnect 3 times. Giving up.
原因是少一个参数,设置时区的. 解决方法: 加一个参数: serverTimezone=UTC jdbc:mysql://localhost:3306/SshProject?useUnicode=t ...
- 【MySQL】Mac通过brew安装的MySQL重启方法
问题 在 Mac 上通过 brew install mysql 安装的的MySQL使用基本MySQL命令重启会失败: mysql.server stop mysql.server start mysq ...
- mysql安装和配置详解以及Navicat连接失败问题
好久没安装过MySQL了,今天安装了下竟然碰壁了, 就来做个笔记吧.安装步骤如下: 记住:一定要看到最后!!!!!!!!! 一. 安装 1.安装 (https://dev.mysql.com/dow ...
随机推荐
- linux下P2P协议(BitTorrent)-libtorrent库编译,测试
1.libtorrent 简介,下载和编译 libtorrent简介 libtorrent是功能齐全的C ++ bittorrent的p2p协议实现,专注于效率和可伸缩性.它可以在嵌入式设备和台式机上 ...
- 手把手教你 在Pytorch框架上部署和测试 关键点人脸检测项目DBFace,成功实现人脸检测效果
这期教向大家介绍仅仅 1.3M 的轻量级高精度的关键点人脸检测模型DBFace,并手把手教你如何在自己的电脑端进行部署和测试运行,运行时bug解决. 01. 前言 前段时间DBFace人脸检测库横空出 ...
- hyperledger explorer 结合 fabric1.4 搭建 区块链浏览器 踩坑记录
博主通过这篇博客的步骤搭建区块链浏览器:https://blog.csdn.net/qq_32675427/article/details/99946945 进行到下面这一步时出现各种异常,浪费了博主 ...
- origin Tips
origin Tips 注意事项 在最初画图时,需要考虑到最好将图片的尺寸限制在 1 张 A4 纸的大小,不然有可能在插入 latex 的时候出问题 . 如何修改图片的尺寸?简而言之就是将画布中的图片 ...
- 图解选择排序及算法优化(Java实现)
选择排序 前言 原理:每次循环对比找出最小/大值,将最值的元素交换至左侧 思想:直接选择排序(Straight Select Sort)算法思想:第一趟从n个元素的数据序列中选出关键字最小/大的元素并 ...
- python基础四(json\os\sys\random\string模块、文件、函数)
一.文件的修改 文件修改的两种思路: 1.把文件内容拿出来,做修改后,清空原来文件的内容,然后把修改过的文件内容重新写进去. 步骤: 1.打开文件:f=open('file','a+') #必须用a ...
- pytest测试框架 -- skip跳过执行测试用例
跳过执行测试用例 1.@pytest.mark.skip(reason=" ") -- 跳过执行测试函数 可传入一个非必须参数reason表示原因 import pytest@ ...
- linux下设置账户锁定阈值:登录失败n次,多长时间后解锁重新登录
在centos系统下: 1.执行命令 vim /etc/pam.d/system-auth或vim /etc/pam.d/ login 2.执行命令 vim /etc/pam.d/sshd 3.在上面 ...
- redis设置密码和查询密码
编辑redis.windows.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数: 比如 requirepa ...
- 漏桶、令牌桶限流的Go语言实现
限流 限流又称为流量控制(流控),通常是指限制到达系统的并发请求数. 我们生活中也会经常遇到限流的场景,比如:某景区限制每日进入景区的游客数量为8万人:沙河地铁站早高峰通过站外排队逐一放行的方式限制同 ...