debian12安装mysql5.7.42(deb)
安装
官方文档
https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/linux-installation-debian.html
上面是8.0的教程,服了我说怎么那么奇怪
5.7官方教程
https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/linux-installation-debian.html
下面就完全根据官网的教程走了,第三方的哥们都不靠谱
cd ~/playground
mkdir mysql && cd mysql
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.42-1debian10_amd64.deb-bundle.tar
tar -xvf mysql-server_5.7.42-1debian10_amd64.deb-bundle.tar
sudo apt-get install libaio1
sudo dpkg -i mysql-{common,community-client,client,community-server,server}_*.deb #这个时候以后就可以通过mysql --version查看到了
Here are where the files are installed on the system:
All configuration files (like my.cnf) are under /etc/mysql
All binaries, libraries, headers, etc., are under /usr/bin and /usr/sbin
The data directory is /var/lib/mysql
看到这里就结束了(是不是没想到就那么少,有anacoda的先把它自带的mysql给删掉)
密码不知道
若在 dpkg-preconfigure 或 dpkg -i 安装过程中 未手动设置密码(直接回车跳过),MySQL 默认启用 Socket Peer-Credential 认证,本地 root 用户可直接通过套接字文件(/var/lib/mysql/mysql.sock)无密码登录。
sudo mysql -u root
设置密码/修改密码
如果没有设置密码,那么无法从非root用户外登录,Navicat等图形化软件还有开发都是无法连接的。
-- 方法 1:设置新密码(适用于 MySQL 5.7)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';-- 方法 2:若密码验证插件为 mysql_native_password(默认)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');FLUSH PRIVILEGES; -- 刷新权限
sudo mysql -u rootALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)FLUSH PRIVILEGES;
修改密码但无效
auth_socket 插件会根据系统用户权限(如 sudo)验证身份,绕过密码检查。
SELECT User, Host, plugin FROM mysql.user WHERE User = 'root';
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| root | localhost | auth_socket | <-- 关键!使用套接字认证,而非密码
+------------------+-----------+-----------------------+
解决办法:切换为密码认证(mysql_native_password 插件)
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password -- 切换为密码认证插件
BY '1234'; -- 设置密码
FLUSH PRIVILEGES;
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+ mysql_native_password | <-- 已切换为密码认证
+------------------+-----------+-----------------------+
其他
未完待续