参照MySQL官网的步骤:https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
- 下载.deb包到本地,例如:下载mysql-apt-config_0.8.3-1_all.deb,
wget https://dev.mysql.com/get/mysql-apt-config_0.8.3-1_all.deb
- 切换到下载下来的包所在的目录
- 使用sudo dpkg -i 命令安装下载的包,例如:
sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb
注:期间需要配置安装信息,如果默认,就直接选择选项中的OK项
-
更新包信息
sudo apt-get update
-
安装MySQL
sudo apt-get install mysql-server
-
检查服务状态
systemctl status mysql
-
启动服务
systemctl start mysql
-
停止服务
systemctl stop mysql
修改密码
mysql 5.7 不在提供默认密码,在debian系列中,可以通过/etc/mysql/debian.cnf
文件,查看系统默认给我们分配的用户名和密码,通过这个密码就可以直接对MySQL进行操作了。
以debian-sys-maint
为用户名登录,密码就在debian.cnf
里。使用mysql -u debian-sys-maint -p
进行登录。进入mysql之后修改MySQL的密码,具体的操作如下用命令:
$ update mysql.user set authentication_string=password("123456") where user="root";
$ flush privileges;
更新:最近又按照上的操作在deepin上安装了一下,发现安装到本机上的是maridb,而不是mysql,区别在与通过
/etc/mysql/debian.cnf
文件看到的是如下内容,这个时候需要切换到系统账户root
下,以root
为登录名进行修改密码的操作。
当修改之后就可应正常对MySQL进行操作了。
我在这里遇到的问题是,在修改完密码之后,使用mysql -u root -p passwod
登录,会提示 ERROR 1698 (28000): Access denied for user 'root'@'localhost'
,最初以为是密码没有修改成功,连续多次修改和重启 mysql 都无效,后来发现是因为 mysql.user
表中, root 用户的 plugin 属性值为 auth_socket
,该属性值是指定用户的身份验证插件的,
如果 mysql5.7 没有为 root 用户提供密码,它将使用auth_socket
插件。该插件不关心,也不需要密码。它只检查用户是否使用UNIX套接字进行连接,然后比较用户名。
如果我们要配置密码,需要更改 plugin 字段为 mysql_native_password
。
注意:首先更改插件然后设置密码将不起作用,它将再次回退到
auth_socket
。