Linux | 全网最详细的零基础Ubuntu安装MySQL Server5.x/8.x系列

更新系统软件包

# 更新软件源
sudo apt update
 
# 更新所有软件
sudo apt upgrade -y

安装MYSQL

# 安装服务器
sudo apt install mysql-server
 
# 客户端(不一定需要)
apt-get install mysql-client
 
# 开发文件(不一定需要)
sudo apt-get install libmysqlclient-dev

启动MYSQL服务

sudo systemctl start mysql

查看服务

sudo systemctl status mysql

停止服务

sudo systemctl stop mysql

重启服务

sudo systemctl restart mysql

查看版本

mysql -V

运行安全脚本

sudo mysql_secure_installation

设置密码复杂度:N

MySQL's validate_password plugin is installed by default.
This will require that passwords contain at least one upper case letter, one lower
case letter, one digit, and one special character, and that the total password
length is at least 8 characters

是否删除匿名用户:Y

是否禁用root远程登录:N

是否删除Test数据库:N

更新权限表:Y

登录MYSQL

# 因为没不知道密码所以会拒绝访问数据库
mysql -uroot 
mysql -uroot -p123456
mysql -h 192.168.1.1 -uroot -p123456

查看默认密码

# 查看默认密码
sudo cat /etc/mysql/debian.cnf

再次登录

# 将密码放进去
mysql -udebian-sys-maint -pSLyA0kzS7RLPE7M3

修改密码

# 查询数据库
show databases;
 
# 使用mysql数据库
use mysql;
 
# 5.0版本是用这个版本的
update user set authentication_string=PASSWORD("you_password") where user='root';
 
# 8.0版本是用这个版本的
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Qwer1234';
 
# 5.0版本默认的是auth_sock,必须将它改成mysql_native_password
update user set plugin="mysql_native_password"; 
 
# 8.0版本默认是 caching_sha2_password ,要改成 mysql_native_password
 
# 不知道什么插件,可以先查询一下
# 如果插件不是 mysql_native_password,您需要像上面所示那样更改它
SELECT user, plugin, host FROM mysql.user WHERE user = 'root';
 
 
# 刷新权限表
flush privileges;
 
# 退出数据库 尝试重新登录
quit;

还是访问不进(暂为出现)?

然后一开始的方式也进不去了

(初学者肯定要崩溃!!!哈哈哈,但是我说了,这是最详细的教程还是能解决滴!)

我带你来操作吧!!

暂停服务
sudo systemctl stop mysql

用安全模式进入
本来是 sudo mysqld --skip-grant-tables --shared-memory,但是已经使用 --skip-grant-tables 选项启动了 MySQL 服务器,所以不需要额外指定 --shared-memory,因为这会尝试通过共享内存而不是套接字连接,这可能导致连接问题。

sudo mysqld_safe --skip-grant-tables &
安全模式又报错?

( 哈哈哈 别崩溃哈,最详细的教程,是会教会你滴 放心,咱继续解决 GOGOGO)

分析问题
MySQL 服务器在尝试启动时提示 /var/run/mysqld 目录不存在,这是UNIX套接字文件应该存放的位置。为了解决这个问题,您需要创建这个目录,并确保MySQL服务有权限使用它。

创建目录设置权限
创建 /var/run/mysqld 目录,并设置合适的权限:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
重新登录

再次以无验证模式启动 MySQL 服务器

sudo mysqld_safe --skip-grant-tables &

查询插件名称
!!!!!!本人5.7 mysql使用得是8.0版本的命令,正常情况先用8.0命令!!!!!



# 5.0版本是用这个版本的
update user set authentication_string=PASSWORD("you_password") where user='root';
 
# 8.0版本是用这个版本的
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Qwer1234';
 
# 5.0版本默认的是auth_sock,必须将它改成mysql_native_password
update user set plugin="mysql_native_password"; 
 
# 8.0版本默认是 caching_sha2_password ,要改成 mysql_native_password
 
# 不知道什么插件,可以先查询一下
# 如果插件不是 mysql_native_password,您需要像上面所示那样更改它
SELECT user, plugin, host FROM mysql.user WHERE user = 'root';

输入这个:

SELECT user, plugin, host FROM mysql.user WHERE user = 'root';

退出MYSQL
exit;

再次修改密码
错误 ERROR 1290 (HY000) 表明您不能在 MySQL 服务器以 --skip-grant-tables 选项运行时执行 ALTER USER 语句。当 MySQL 以 --skip-grant-tables 选项启动时,它会跳过权限表的检查,因此不允许更改用户权限或密码。

停止 MySQL 服务

sudo systemctl stop mysql

或者杀死服务

# 查询mysql pid 然后杀死
top
 
# 杀死进程 19066 是进程号
sudo kill -9 19066 

以无验证模式启动MY SQL

sudo mysqld_safe --skip-grant-tables &

登录MYSQL

# 不用密码就可以登录了
mysql -u root

先刷新权限(重要)

FLUSH PRIVILEGES;

再次修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Qwer1234';

刷新权限

FLUSH PRIVILEGES;

退出 重新登录

exit;

停止无验证模式的MySQL服务

sudo killall mysqld

重新启动 MySQL 服务

sudo systemctl start mysql

最后一次用新密码登录

mysql -u root -p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值