前言
CentOS7 默认数据库是 mariadb, 但是 好多用的都是 mysql ,但是 CentOS7 的 yum 源中默认好像是没有 mysql 的。
如果第一次使用 Linux 的童鞋可以类比下 Windows 的安装,步骤都一样,下载-》解压缩-》安装(可指定路径),只不过 Linux 是用命令安装,不是鼠标操作,而且 Linux 是文件系统,一切皆文件,也就是说 Linux 没有和 Windows 一样有 CDE 等盘符的,Linux 都是以文件作为路径。最后说一句,要多动手操作
准备
准备:VMwarecentos7 虚拟主机 mysql 资源路径:http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
实操
1.卸载
先停掉 mysql 进程 没有安装过的可以直接跳过
查找并列出所有被安装的 MySQL rpm package
使用命令 yum -y remove 卸载 MySQL 及相关的包
yum -y remove mysql-community-client-5.6.38-2.el7.x86_64
卸载不掉的用 rpm -ev
复制代码
依次卸载 直到没有
2.下载 mysql 的 repo 源
/**纠正一下,这源下载的是最新的版本 ****/
可以指定安装目录 yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server )我没试,这样装环境变量配置都不用你管,装上直接启动就行。安装路径是默认的。
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
下载完后就是一个 mysql57-community-release-el7-7.noarch.rpm 的文件,可以用以下命令查看该文件都包含哪些包:
rpm -qpl mysql57-community-release-el7-7.noarch.rpm
复制代码
安装 rpm 包
rpm -ivh mysql57-community-release-el7-7.noarch.rpm
复制代码
安装完上述包后,查看 yum 库
之后就可以用 yum 安装 MySQL 了:
yum install mysql-community-server
复制代码
MySQL 安装完成。查看已安装版本
3.设置 mysql 密码
1、停止 mysql 服务
systemctl stop mysqld.service
2、mysql 配置文件修改为免密码登录。
vi /etc/my.cfg
修改
# Disabling symbolic-links is recommended to prevent assorted security risks
skip-grant-tables #添加这句话,这时候登入mysql就不需要密码
symbolic-links=0
复制代码
3、启动 mysql 服务
systemctl start mysqld.service
复制代码
修改密码
set password for root@localhost=password('123456'); or update user set authentication_string=PASSWORD("123456") where user="root";
复制代码
4、以 root 身份登录 mysql, 输入密码的时候直接回车
mysql -u root -p #输入命令回车进入,出现输入密码提示直接回车。
mysql> set password for root@localhost = password('123456');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> set password for root@localhost = password('123456'); or update user set authentication_string=PASSWORD("123456") where user="root";
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>flush privileges; #更新权限
mysql>quit; #退出
复制代码
至此,数据库安装及简单的设置就完成了
MySQL8.0
注:如果你安装的是 MySQL8.0 以上版本,安装完成后如果登录不上,必须修改初始密码才能正常登陆使用
基本设置如下:
登录的时候密码很容易输错,所以需要先获取一个随机密码:
grep 'temporary password' /var/log/mysqld.log //生成随机密码
mysql -uroot -p //使用随机密码登陆
1.修改用户名对应的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; //修改密码
这里直接修改为 123456 会提示密码太弱[非要改为 123456,先要修改 mysql8 的密码规则]
注意:密码设置必须要大小写字母数字和特殊符号(,/’;:等),否则设置失败。
修改成功后退出:quit 或者 exit
如果安装完之后需要通过远程终端连接,要开启 MySQL 的远程访问权限:
create user root@'%' identified by '你的密码';
grant all privileges on *.* to root@'%' with grant option;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges; #更新权限
复制代码
2.修改/etc/my.cnf 添加 skip-grant-tables 跳过验证登录
vim /etc/my.cnf //修改my.cnf文件
//在[mysqld]后面任意一行添加"skip-grant-tables"用来跳过密码验证的过程,保存退出。
mysql -uroot -p //登录,不需要密码
//登录成功:
use mysql; //切换到mysql库
select host,user,authentication_string from user; //可以查看root用户的host及密码(加密后)
复制代码
3.mysql8.0 去除了 password 字段,更改为 authentication_string
update user set authentication_string = '' where user = 'root';
//将密码置为空,my.cnf去掉skip-grant-tables依旧可以空密码登录。
vim /etc/my.cnf
//编辑my.cnf文件 去掉之前添加的"skip-grant-tables",依旧可以空密码登录
复制代码
你还可以通过修改 mysql 的密码策略为 LOW,然后再修改为简单密码或者空密码登陆
查看 mysql 的密码策略
show variables like 'validate_password%';
复制代码
参数详细讲解:
validate_password.check_user_name 用户名检测
validate_password.dictionary_file 指定密码验证的文件路径;
validate_password.length 固定密码的总长度;
validate_password.mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数;
validate_password.policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
validate_password.special_char_count 整个密码中至少要包含特殊字符的个数
复制代码
set global validate_password.policy=LOW; //设置密码强度为LOW
策略修改完后,修改密码:
alter user 'root'@'localhost' identified by 'root'; //修改密码为root,提示修改成功
复制代码
以上为 MySQL8.0 安装完成后的简单设置和注意事项,动手实践起来吧!
评论