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端口以后,成功连上。
哎,上次乱搞数据库,把数据库里的密码换了种加密方式,今天就死活连不上了,结果重启,发现重启也失败了,发现之前安装的一堆问题,最后只有重装,心累啊!
以后一些不是很清楚的操作慎用。