2.数据库实战(ubantu 下安装mysql5.7,8.0,修改密码,设置远程连接)

前置知识:

    https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/  linux下安装mysql最新版官方文档

    https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html reset mysql的密码

 

    service mysql start 官方文档上说是resart mysql ,但是如果mysql本身是在运行的,这条命令不起任何作用。要想重启,得先关闭,再开始。

    /etc/init.d/mysql restart 这个才会重新加载配置文件

      service mysql status 查看mysql状态

    service mysql stop 关闭mysql      

 

             mysql如何跳过root用户密码验证

    



sudo vim /etc/mysql/my.cnf // 编辑配置文件
# 添加以下内容
[mysqld]
skip-grant-tables

# 重启
不要使用service mysql start
一定要使用 /etc/init.d/mysql restart 这个才会加载配置文件
mysql -u root 登录即可
发现在mysql8.0里面尝试修改密码会报错,错误信息大致是你当前mysql是跳过密码验证的,改了密码也没用。
那就只有使用系统的debian-sys-maint用户登录,看下面的内容即可。

 

 

1.我的机子上之前安装过mysql。查找和mysql有关的数据文件,库文件等,配置文件my.cnf一一删除。

find / -name mysql

 

2.安装mysql-server

sudo apt install mysql-server

我出现下列错误:

dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                   

我猜测是之前安装过mysql的问题,指向下列语句

sudo apt purge mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7 mysql-server

sudo apt update
&& sudo apt dist-upgrade && sudo apt autoremove && sudo apt -f install

3.安装成功后,修改密码

sudo cat /etc/mysql/debian.cnf 

输出:

采用debian-sys-maint登录mysql。

use mysql;
flush privileges;
// UPDATE mysql.user SET plugin="mysql_native_password", authentication_string=PASSWORD("你要设置的密码") WHERE user="root";//密码要求8位以上,包含数字,大写字母,小写字母,mysql8.0已经失效
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; // mysql 8.0使用,注意,必须使用whith mysql_native_password关键字修改密码
flush privileges;
//退出mysql,重启mysql
service mysql stop
service mysql start

 

4.设置远程登录

4.1.进入mysql

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您要的数据库密码' WITH GRANT OPTION;
flush privileges;

4.2退出mysql,更改配置文件/etc/mysql/my.cnf,加入下面代码。

[mysqld]
  bind-address=0.0.0.0

4.3.同样重启,重启时mysql会根据my.cnf配置mysql.

      退出mysql

service mysql stop
service mysql start

5.vscode配置,vscode安装插件mysql。依次填入ip,端口,用户,mysql密码。这个插件对于mysql8.0以上版本不适合,远程连接连不上。

我之前也死活连不上,最后发现我的mysql是安装在阿里云服务器上,阿里云安全组默认开启ssh的端口22,会关闭mysql的默认端口3306。打开3306端口以后,成功连上。

 

哎,上次乱搞数据库,把数据库里的密码换了种加密方式,今天就死活连不上了,结果重启,发现重启也失败了,发现之前安装的一堆问题,最后只有重装,心累啊!

以后一些不是很清楚的操作慎用。

posted @ 2020-03-24 19:52  FizzPu  阅读(197)  评论(0编辑  收藏  举报