前言

看到题目大家应都会想,在 Debian 9 上安装 Mysql?那不是很简单的事儿吗?直接 sudo apt install mysql-server 不就行了吗?

没想到遇到了几个之前没遇到的问题,耽误了不少时间。

原来在 Debian 9 中,Mysql 已经被替换成了 MariaDB,所以和传统的安装 Mysql 有一些不一样的地方。

安装方法

首先我们还是可以用 sudo apt install mysql-server 这样安装上的,但是安装上的还是 MariaDB,所以最好还是采用 sudo apt install mariadb-server 这样吧。

安装上之后,发现和传统的不一样,因为没有弹出设置密码的那个蓝色的界面,误以为直接可以空密码登录。直接尝试 mysql -uroot -p,发现 ERROR 1698 (28000): Access denied for user 'root'@'localhost'。难道默认密码不是空?查看 /etc/mysql/debian.cnf 中默认密码确实是空。

第一反应是执行 mysqld_safe skip-grant-tables,然后 use mysql; ,然后 update user set password=PASSWORD('mysql') where User='root'; 。这样确实可以解决问题,但是重启之后莫名发现又登录不了了。

懵逼一段时间后发现 MaraiDB 的默认密码确实是空,但是只能用 Root 用户登录

注意:这里的用户说的是 linux 系统的 Root 用户,也就是说,你 sudo su 进入 Root 终端后,是可以正常登录的,但是普通用户却无法登录。(为了区别一下,我把 Root 终端的首字母大写,而 mysql 的 root 用户首字母小写)

大概明白了,所以我们不能图方便一直使用 root 用户了,正确的姿势应该是这样的:

首先是 sudo apt install mariadb-server 安装上数据库。

然后 sudo su 切换至 Root 终端,通过 mariadb -uroot -p 登录到数据库,如果默认密码不是空的话,可以查看 '/etc/mysql/debian.cnf'。

这时候要做的是创建新用户:create user 'admin'@'localhost' identified by 'mysql'

然后给新用户设置权限:grant all on *.* to 'admin'@'localhost'

好了,我们又设置了一个方便的 "Root" 用户,只不过改了名字叫做 admin。

PS:我发现在 Root 终端中,不管密码输入什么都能正常连接数据库...晕。

总结

更多相关文章

  1. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  2. 浅谈Java中Collections.sort对List排序的两种方法
  3. Python list sort方法的具体使用
  4. python list.sort()根据多个关键字排序的方法实现
  5. android上一些方法的区别和用法的注意事项
  6. android实现字体闪烁动画的方法
  7. Android系统配置数据库注释(settings.db)
  8. Android中dispatchDraw分析
  9. Android四大基本组件介绍与生命周期

随机推荐

  1. 朋友问他是否该跳槽了?我是这么跟他说的
  2. Python机器学习之旅|手把手带你探索IRIS数
  3. 近期文章汇总
  4. 我来啦!
  5. 动画:面试官问我 0.1 + 0.2 0.3 ? 为什么
  6. 深入理解跳表在Redis中的应用
  7. Python办公自动化|从Excel到Word
  8. Pyecharts制作地图的几种方法评析
  9. 一道Leetcode数据库题的三种解法|文末送书
  10. 你在的城市撒币了吗?Python爬取全国各城市