“可恶”的mariadb
这是头一次用mariadb,听说是centos7自带的,本来本地用的好好地,今天想连接一下远程centos7主机上的mariadb,结果各种出错,痛不欲生,最后实在买办法只能卸载装mysql啦。稍微记录一下
先说一下我的mariadb是5.5的,mysql是5.6的,系统为centos7
以.无法连接远程数据库的原因主要有如下几点
(1).数据库没有启动
(2).被防火墙拦截
(3).数据库不允许用户远程连接
(4).用户名密码不对
1.针对第一种情况
可以试一下本地是否可以登录,能登录说明有启动,也可以用如下命令查看数据库运行状态
#mysql
service mysqld status
#mariadb
service mariadb status 出现绿色字体的active (running)信息表示数据库正在运行
2.被防火墙拦截的话,就老老实实配置一下防火墙吧
#该命令可以查看防火墙是否启动
firewall-cmd --state
我是没有开启防火墙,所以没管这块,后面遇到再整理吧
3.数据库不允许用户远程连接
#在本地进入数据库(通过远程连接工具哈)
mysql -uroot -ppasswd
#进入mysql数据库(自带的数据库)
use mysql;
#主要是修改user表,先查看一下user表内容
SELECT host,user,password FROM user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *7DA6E613C81FE6163422CD48DF480B66BCEC66 |
| 127.0.0.1 | root | *7DA6E613C81FE6163422CD48DF480B66BCEC66 |
| :: | root | *7DA6E613C81FE6163422CD48DF480B66BCEC66 |
+-----------+------+-------------------------------------------+
#你看上面的host都是本地的,下面配置一下通过授权的方式配置远程连接的权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
#我们再来查询一下user表
SELECT host,user,password FROM user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *7DA6E613C81FE6163422CD48DF480B66BCEC66 |
| 127.0.0.1 | root | *7DA6E613C81FE6163422CD48DF480B66BCEC66 |
| :: | root | *7DA6E613C81FE6163422CD48DF480B66BCEC66 |
| % | root | *7DA6E613C81FE6163422CD48DF480B66BCEC66 |
+-----------+------+-------------------------------------------+
#看吧,是不是比之前多了一行host为%的数据,这表示该用户可以远程连接数据库啦,如果你表中本来就有的话那就不是远程连接配置的问题啦
#网上有很多要修改配置文件,注释掉1.7.0..1之类的,可能是版本问题,我的压根找不到这配置文件。
4.用户名密码不正确
主要说一下忘记密码了怎么办吧
#编辑/etc/my.cnf 加入skip-grant-tables
#不同版本配置文件位置可能不懂,这个就要自己查查看吧,我说的这个是mysql5.6的
vim /etc/my.cnf
#修改如下:
---------------------------------------------------------------------------------------------
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at % of total RAM for dedicated server, else %.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=
#skip-grant-tables # Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
------------------------------------------------------------------------------------
#重启MySQL
systemctl restart mysqld #只要你上面有配置成功,那其实现在你的数据库可以在任何地方免密码登录啦,前提你有配置远程登录
#现在试一下可不可以远程登录mysql了呢,但是这样是很不安全的,继续下面配置
#直接用mysql命令登录
mysql #进入'mysql'数据库
use mysql; #修改密码
UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
#如果上面的命令报错,可以是一下这个
update mysql.user set authentication_string=password('root') where user='root'; #编辑my.cnf文件删掉skip-grant-tables 这一行,然后重启MySQL
systemctl restart mysqld #再试一下可不可远程连接了呢,
#最痛不欲生的就是现在还是没办法远程连接,这几步我反复试了很多次,密码修改后一直不生效,最后做到免密码登录后睡了一觉第二天再配置了一变竟然生效啦,
#所以有啥解决不了的问题,睡一觉自然就好了。建议在操作这几步的时候慢一些,可能是配置没能马上生效。
之所以把mariadb卸载重装了mysql,是因为我在执行修改密码的操作时,发现我的mariadb数据库无法停止,也许你可以在修改密码后通过 flush privileges; 命令使修改生效。
我的mariadb的配置一直没生效,你也可以试一下把程序kill掉,我怕以后还出问题,一气之下果断下载了,关于卸载的步骤,可以参考https://blog.csdn.net/sunny05296/article/details/56015884和https://blog.csdn.net/xizaihui/article/details/53041603
我是这样卸载的
# rpm -qa | grep mariadb
mariadb-libs-5.5.-.el7_2.x86_64
mariadb-5.5.-.el7_2.x86_64
mariadb-server-5.5.-.el7_2.x86_64 # rpm -e --nodeps mariadb-libs-5.5.-.el7_2.x86_64
# rpm -e --nodeps mariadb-5.5.-.el7_2.x86_64
# rpm -e --nodeps mariadb-server-5.5.-.el7_2.x86_64 #删除数据库文件:
rm -rf /var/lib/mysql/*
另外卸载之前如果有数据的话要备份一下,可以参考https://www.cnblogs.com/jwlfpzj/articles/7998395.html
主要记录一下导出数据到文件的和从文件导入数据库的命令
#导出,可以不登陆数据库服务
mysqldump -u dbuser -p dbname > dbname.sql
#导入,需要登录数据库服务,并选择要导入到的数据库
source /home/abc/abc.sql;
最后再说一个安装mysql5.6的参考文章:https://blog.csdn.net/xizaihui/article/details/52962057
安装完数据库后要设置一下字符编码,不然后面创建的数据库会不支持中文或者乱码
#编辑 /etc/my.cnf
vim /etc/my.cnf #在[mysqld]下添加如下配置
character-set-server=utf8 #如果字符集还不行,再增加如下配置
[client]
default-character-set=utf8 [mysql]
default-character-set=utf8 #在修改字符编码前的数据库编码还是不会变,需要重新创建数据库,再把数据导入
“可恶”的mariadb的更多相关文章
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
		
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
 - 续 CentOS7(mini) 运行MVC5 + Mariadb
		
上一篇,介绍了在CentOS7上使用mono官方二进制安装包快速安装mono环境 并且成功运行了一个Owin自宿主应用(Booker) 由于Owin自宿主应用不需要System.Web的支持,所以可以 ...
 - 读书笔记--SQL必知必会--常用MySQL(MariaDB)命令
		
DBMS信息 显示DBMS的版本 select version(); 显示DBMS状态 status; 显示DBMS资源状态 show status; 显示DBMS支持的权限 show privile ...
 - 从MySQL 5.5迁移到Mariadb 10.1.14
		
从MySQL 5.5迁移到Mariadb 10.1.14 迁移计划如下: 1.备份MySQL 5.5的数据库,对指定库进行备份. 2.还原到Mariadb,然后建立复制. 3.然后就可以愿意啥时候切换 ...
 - mariadb数据库忘记密码如何找回
		
1.systemctl stop mariadb ==>停止mariadb数据库 2.mysqld_safe --skip-grant-tables & ==>进入单机模式 3.m ...
 - CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安装
		
每次搭建新服务器,都要来来回回把这些包再装一下,来来回回搞了不下20遍了吧,原来都是凭经验,配置过程中重复入坑是难免的,故写此文做个备忘.虽然有像xampp这样的集成包,但是在生产环境的Linux发行 ...
 - Ubuntu 16.04 LAMP server 指南 - 配置 Apache2.4,PHP7,和MariaDB(而不是MySQL)
		
翻译自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/ 昨天在虚 ...
 - CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
		
1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ...
 - MySQL/MariaDB/PerconaDB-提权条件竞争漏洞
		
背景 2016年11月01日,国外安全研究员Dawid Golunski在 MySQl, MariaDB 和 PerconaDB 数据库中发现条件竞争漏洞,该漏洞允许本地用户使用低权限(CREATE/ ...
 
随机推荐
- seo是什么
			
SEO(Search Engine Optimization):汉译为搜索引擎优化.搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式. SEO的目的是:为网站提供 ...
 - 【日语】日语能力考试N2级核心词汇必备—接续词
			
日语能力考试N2级核心词汇必备—接续词 顺接 だから 因为......所以......(下文可用命令,意志劝诱等)その結果 其结果(口语,书面语都行,但是比较生硬)したがって 从而,因而(书面语, ...
 - java.sql.Date和java.sql.Timestamp转换
			
转自:https://www.xuebuyuan.com/1479399.html 在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换.若对应数据库数据是o ...
 - java - day011 - 集合, ArrayList HashMap,HashSet, Iterator 接口, for-each 循环格式
			
集合 ArrayList 丑数: 能被3,5,7整除多次, ArrayList list 接口 | - ArrayList | - Linked ...
 - Yum三方仓库——RPMForge
			
参考:How to Enable RPMForge Repository in RHEL/CentOS 7.x/6.x/5.x RPMForge / RepoForge这两个项目已经死亡,不应该使用 ...
 - AD19新功能之跟随走线
			
跟随走线 AD19新增跟随走线,比如需要按照特定的轨迹进行走线,比如要绕着一个圆进行走线,或者靠着边框走线,普通模式下的效果如下图所示,线会跟着指针跑: 在走线模式下,按住 shift + f ,然后 ...
 - PHP危险函数的持续学习
			
记录下遇到过的PHP危险函数 0x01 escapeshellarg()与escapeshellsmd()联合 先给出官方的定义: escapeshellarg ( string $arg ) : s ...
 - ElasticSearch 连载二 中文分词
			
ElasticSearch 连载二 中文分词 上一章ElasticSearch 连载一 基础入门 对Elastic的概念.安装以及基础操作进行了介绍. 那是不是有童鞋会有以下几个问题呢? 什么是中文分 ...
 - 个性化召回算法实践(四)——ContentBased算法
			
ContentBased算法的思想非常简单:根据用户过去喜欢的物品(本文统称为 item),为用户推荐和他过去喜欢的物品相似的物品.而关键就在于这里的物品相似性的度量,这才是算法运用过程中的核心. C ...
 - 新闻系统——VS制作自己的模板
			
我们在做机房管理的项目时,就用过模板方法,建立一个模板,这样就会省很多事,我们不需要每次都添加同样的东西,比如我们的类窗体,就可以制作一个模板,将注释和需要引用的控件直接添加上,这可以省去很大的麻烦, ...