前言
我们采用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条评论