mysql 8.0安装、重置密码、开放远程连接

数据库 2021-06-02 191

前言
我们采用APT方式在Ubuntu系统中安装MySQL,这种方式安装的版本都是最新的版本,目前是8.0.19,通过这种方式安装好之后,所有的服务、环境变量都会启动和配置好,无须手动配置。

由于MySQL和Ubuntu之间的版本适配原因,首先需要到MySQL官网下载MySQL APT安装配置包,下载地址为 https://dev.mysql.com/downloads/repo/apt/ 。下载后可使用几个简单的命令进行安装。

我的系统环境:

Ubuntu 18.04 64位

MySQL 8.0.19

下载MySQL APT安装配置包
首先访问 https://dev.mysql.com/downloads/repo/apt/ 获取配置包下载地址


复制下载链接


目前,这里复制到的链接地址是

https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb

然后进入Ubuntu系统,打开终端,并输入以下命令,进行下载MySQL APT配置包

wget https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb

 

可以看到已下载好的MySQL APT配置包

目前下载的配置包是:

mysql-apt-config_0.8.14-1_all.deb

安装MySQL APT配置包
输入以下命令,进行安装:

sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb


安装过程中出现选择项,通过上下键选择OK继续安装即可。


安装完成之后,如下图所示。

安装MySQL Server
更新APT软件源:

sudo apt-get update


安装MySQL Server

sudo apt-get install mysql-server


输入 y 继续执行,弹出MySQL 8安装对话框,按回车键确定,进入设置root密码的对话框


下载速度可能有点慢请耐心等待,可以尝试更换APT数据源,国内的镜像网站有很多,比如阿里云、清华大学镜像等等,至于如何更换,请自行百度。
设置 root 用户密码,这里密码暂时设为 1234 。

Tab 回车 确定 。


选择身份验证方式、密码加密方式,这里默认的即可。回车 确定


安装完成。


MySQL 8安装好之后,会创建如下目录:

数据库目录:/var/lib/mysql/。

配置文件:/usr/share/mysql-8.0(命令及配置文件),/etc/mysql(如my.cnf)。

相关命令:/usr/bin(mysqladmin、mysqldump等命令)和/usr/sbin。

启动脚本:/etc/init.d/mysql(启动脚本文件mysql的目录)。

启动MySQL服务
通过以上的APT方式安装好之后,所有的服务、环境变量都会启动和配置好,无须手动配置。
服务器启动后端口查询

sudo netstat -anp | grep mysql


服务管理

查看服务状态
sudo service mysql status
停止服务
sudo service mysql stop
启动服务
sudo service mysql start
重启服务
sudo service mysql restart
登录MySQL数据库
mysql -u root -p
然后输入密码 1234 。


登录成功。

卸载命令
需要完全清理MySQL时,可以完全卸载。

sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean


重置密码

一、停止mysqld进程

sudo service mysql stop

二、修改/etc/mysql/my.cnf(在mysqld选项添加skip-grant-tables),设置免密码登录:

三、登录mysql并修改root密码为空:

update mysql.user set authentication_string=''  where User='root';

四、退出mysql,去掉/etc/mysql/my.cnf上的skip-grant-tables,上述步骤二添加的配置

五、再次登录mysql,密码为空,修改root用户密码为新密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zcz123456!';

远程连接

一、登录mysql

mysql -u root -p

二、登录成功,查看权限表

mysql> use mysql;
mysql> select host, user, authentication_string, plugin from user; 

二、开始修改配置:
3,更新域属性,'%'表示允许外部访问:

update user set host='%' where user ='root';


4,执行以上语句之后再执行:

FLUSH PRIVILEGES;


5,再执行授权语句:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;


然后外部就可以通过账户密码访问了。

6,其它说明:

FLUSH PRIVILEGES; 命令本质上的作用是:

将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。

通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。

而不必冒太大风险。

三、可能存在的其它问题:
执行完之后,再用Navicat连接mysql,报错如下:

Client does not support authentication protocol requested by server;
报错原因:

mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式Navicat 12以下客户端不支持;

Navicat 12以下客户端支持的是mysql_native_password 这种加密方式;

解决方案:

1,用如下语句查看MySQL当前加密方式

select host,user,plugin from user;


查询结果

+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | mysql_native_password |
| localhost | mysql.session    | mysql_native_password |
| localhost | mysql.sys        | mysql_native_password |
+-----------+------------------+-----------------------+


看第一行,root加密方式为caching_sha2_password。

2,使用命令将他修改成mysql_native_password加密模式:

update user set plugin='mysql_native_password' where user='root';
FLUSH PRIVILEGES;


再次连接的时候,就成功了。

此处可能会将密码转为明文,原因不明,如果导致无法登录,使用上方重置密码解决

创建新用户

先执行
mysql> flush privileges;
然后再,注意使用%表示支持远程访问
mysql> CREATE USER 'appleyuchi'@'%' IDENTIFIED with mysql_native_password  BY 'appleyuchi';
即可

内容转载自:

https://blog.csdn.net/weixin_44129085/article/details/104481986

https://www.cnblogs.com/zhengchuzhou/p/9858907.html

标签:数据库

文章评论

评论列表

已有0条评论