您的位置:首页 > 数据库 > MariaDB

Centos7安装mydql之后已经自动让mariadb代替--mysql修改root密码

2017-09-14 13:23 681 查看
不想装oracle,心想装个mysql轻便一点,我用的linux版本是Fedora24.执行完yum安装命令后发现竟然无法启动错误提示如下

[java] view
plain copy

 print?

[root@localhost ~]# systemctl start mysql.service  

Failed to start mysql.service: Unit mysql.service not found.  

查了半天资料,终于了解到MariaDB代替了mysql数据库,MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

因此用上述命令启动不起来,正确的方法如下

[java] view
plain copy

 print?

# yum install mariadb-server -y //如果已安装可以省略  

# systemctl start mariadb.service //启动服务  

# systemctl enable mariadb.service //开机启动服务  

# mysql -u root -p //登录mysql  

---------------------------------------------------------------------------------------------------不华丽的分割线--------------------------------------------------------------------------------------------------------
如果你不想用这个方法解决这个问题,还有一个方法,不过个人并不推荐此方法,这个方法就是在 /etc/systemd/system/mysqld.service 添加Unit,既然错误提示找不到Unit那我们添加一个就好了。在 /etc/systemd/system/mysqld.service下添加如下内容

[java] view
plain copy

 print?

[Unit]  

Description=MySQL Server  

After=network.target  

  

[Service]  

ExecStart=/usr/bin/mysqld --defaults-file=/etc/mysql/my.cnf --datadir=/var/lib/mysql --socket=/var/run/mysqld/mysqld.sock User=mysql  

Group=mysql  

WorkingDirectory=/usr  

  

[Install]  

WantedBy=multi-user.target  

然后运行

[java] view
plain copy

 print?

systemctl daemon-reload  

刷新缓存

这样我们就可以用

[java] view
plain copy

 print?

systemctl start mysql.service  

启动mysql了

这第二种方法未经本人亲自验证,不知是否有效,如果有效的话,还希望反馈。谢谢。之所以把他贴出来,是因为觉得这是一个解决问题的思路。

修改的用户都以root为列。
一、拥有原来的myql的root的密码;

方法一:
在mysql系统外,使用mysqladmin
# mysqladmin
-u root -p password "test123"
Enter password: 【输入原来的密码】

方法二:
通过登录mysql系统,
# mysql
-uroot -p
Enter password: 【输入原来的密码】
mysql>use
mysql;
mysql> update
user set password=passworD("test") where user='root';
mysql> flush
privileges;
mysql> exit;      

二、忘记原来的myql的root的密码;

首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。
类似于安全模式登录系统,有人建议说是pkill
mysql,但是我不建议哈。因为当你执行了这个命令后,会导致这样的状况:
/etc/init.d/mysqld status
mysqld dead but subsys locked
这样即使你是在安全模式下启动mysql都未必会有用的,所以一般是这样/etc/init.d/mysqld
stop,如果你不幸先用了pkill,那么就start一下再stop咯。
# mysqld_safe
--skip-grant-tables &
&,表示在后台运行,不再后台运行的话,就再打开一个终端咯。
# mysql
mysql> use
mysql;
mysql> UPDATE user SET password=password("test123")
WHERE user='root';   
mysql> flush
privileges;
mysql> exit;                         
##本来mysql是不分大小写的,但是这个是修改的mysql中的mysql数据库的具体的值,要注意到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: