Linux安装MySQL,数据库工具连接Linux的MySQL
1、centOS中默认安装了MariaDB,需要先进行卸载
rpm -qa | grep -i mariadb
rpm -e --nodeps 上面查出来的mariadb
2、下载MySQL仓库并安装
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql80-community-release-el7-3.noarch.rpm
3、安装MySQL数据库
yum -y install mysql-community-server
4、开启MySQL服务
systemctl start mysqld.service
5、查看MySQL默认密码
cat /var/log/mysqld.log | grep password
6、登录MySQL
mysql -uroot -p
登录成功后,查看数据库
show databases;
选择使用 mysql 数据库
use mysql;
7、修改密码
alter user 'root'@'localhost' identified by '你的密码,包括数字、大小写字母和特殊符号,不少于8位数';
8、允许远程访问
update user set host = '%' where user = 'root' and host = 'localhost';
9、如果是云服务器,需要在安全组配置开放3306端口
10、Navicat for MySQL新建连接,填写IP、端口、用户root和对应密码,测试连接
拓展:
MySQL常用命令
查看MySQL的运行状态
service mysqld status
重启MySQL服务
systemctl restart mysqld
停止MySQL的服务
systemctl stop mysqld
查看MySQL初始密码策略
SHOW VARIABLES LIKE 'validate_password%';
validate_password.length:密码最小长度
validate_password.mixed_case_count:至少有大小写字母n对,即2*n个
validate_password.number_count:最少数字数量
validate_password.policy:安全强度,默认为中,即1,要求必须包含 数字、符号、大小写字母,长度至少为8位
validate_password.special_char_count:最少符号数量
修改密码长度和策略
set global validate_password.policy=0; set global validate_password.length=1;
MySQL免密登录(忘记密码)
vi /etc/my.cnf 进入 /etc/my.cnf 文件,找到 [mysqld] ,在其后面添加 skip-grant-tables 修改文件后保存,并重启mysql服务,就可以免密登录了
免密登录 mysql 后可以使用 alter 语句修改密码,再将 my.cnf 文件中的 skip-grant-tables 注释掉
保存该文件后重启 mysql 服务,就可以使用新密码登录了
Navicat连接MySQL的时候出现【1251 - Client does not support authentication protocol requested by server】
出现上述问题的原因是:
mysql8之前的版本中加密规则是mysql_native_password
而在mysql8之后,加密规则是caching_sha2_password
把mysql用户登录密码加密规则还原成mysql_native_password 解决方法: 1、alter user 'root'@'%' identified with mysql_native_password by '你的密码'; 2、flush privileges; 3、停止并重启MySQL
yum -y install mysql-community-server 时 Failing package is: mysql-community-client GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
报错原因:MySQL GPG 密钥已过期
解决方法:
1、rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
2、 yum -y install mysql-community-server
在某个数据库添加用户
1、使用目标数据库:USE database_name; 2、添加用户:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; 3、授予用户权限:GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 这将授予用户对特定数据库的所有权限。如果你只想为用户授予特定的权限,请将 “ALL PRIVILEGES” 替换为你所需的权限,例如 “SELECT, INSERT, UPDATE, DELETE”。 4、刷新权限:FLUSH PRIVILEGES;
卸载MySQL容易漏掉的2个文件
rm -rf /var/log/mysqld.log
rm -rf /etc/my.cnf