centos7系统安装mysql8(亲测)
(centos是基于红帽系统开发的)
step one:
.首先卸载centos7中自带的mariadb
rpm -qa|grep mariadb //查询出来已安装的mariadb
rpm -e --nodeps 文件名 //卸载mariadb,文件名为上述命令查询出来的文件
3.查看是否已经安装了mysql
rpm -qa | grep -i mysql
查找mysql文件,使用rm -rf mysql文件路径删除
find / -name mysql
删除分散mysql文件
find / -name mysql / # whereis mysql
删除配置文档
rm -rf /etc/my.cnf
再次查找机器是否安装mysql
rpm -qa|grep -i mysql
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
step two:
.下载 rpm 包
在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
在官网找到对应的 MySQL 的源,我们选择 mysql80-community-release-el7-1.noarch.rpm 社区免费正式发布版8.0
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
安装 rpm 包
yum localinstall mysql80-community-release-el7-1.noarch.rpm
**(该步可能会报错:warning: mysql80-community-release-el7-1.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY这是由于yum安装了旧版本的GPG keys造成的 ) (解决方法:rpm --import /etc/pki/rpm-gpg/RPM* 引用后再安装)
vim /etc/yum.repos.d/mysql-community.repo (找到 [mysql80-community] 确保 enabled=1)
查看是否安装到位
yum repolist enabled | grep "mysql.*-community.*"
修改安装版本(非必须)
如果需要安装指定版本的mysql,可以修改/etc/yum.repos.d/mysql-community.repo源,改变默认安装的mysql版本。
例如要安装5.7版本,将5.7源的enabled=0改成enabled=1,将8.0的enabled=1改成enabled=0即可
安装 mysql-server
yum install mysql-community-server (太慢了)
#// 或yum install mysql-server
启 MySQL 服务
systemctl start mysqld
设置开机启动
systemctl enable mysqld
systemctl daemon-reload
ps:如果安装好后 无法启动
1把 vim /etc/my.cnf 里加的东西先删除
2安装后已经启动mysql后有数据的需要删除数据并初始化mysql
删除 MySQL的数据 /var/lib/mysql
rm -rf /var/lib/mysql
再重启
5、修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
shell> grep 'temporary password' /var/log/mysqld.log
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
注意:mysql8修改密码策略
show global variables like '%validate_password%';
#验证策略 0-->low 1-->MEDIUM 2-->strong
set global validate_password.policy=0;
#密码最小长度
set global validate_password.length=3;
查看密码策略(修改临时密码之后才可查看)
show variables like 'validate_password%';
8之前 validate_password_ 8之后validate_password.
修改密码策略
set global validate_password.policy=0;(0或LOW代表低级)
密码验证策略低要求
set global validate_password.mixed_case_count=0;
密码至少要包含的小写字母个数和大写字母个数
set global validate_password.number_count=0;
密码至少要包含的数字个数。
set global validate_password.special_char_count=0;
密码至少要包含的特殊字符数
set global validate_password.length=6;
密码长度
修改密码
ALTER user 'root'@'localhost' IDENTIFIED BY '密码'
密码不能使用root
6、添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
mysql8和原来的版本有点不一样,8的安全级别更高,所以在创建远程连接用户的时候,
不能用原来的命令(同时创建用户和赋权):
mysql>grant all PRIVILEGES on *.* to guaiyouyisi@'%' identified by '123456';
必须先创建用户(密码规则:mysql8.0以上密码策略限制必须要大小写加数字特殊符号):
mysql>create user guaiyouyisi@'%' identified by 'Guaiyouyisi.';
再进行赋值:
mysql>grant all privileges on *.* to guaiyouyisi@'%' with grant option;
最后刷新一下:
mysql>flush privileges;
当你进行远程连接是,会出现这样的错误:
Unable to load authentication plugin 'caching_sha2_password'.
是因为mysql8使用的是caching_sha2_password加密规则,最简单的方法是修改远程连接用户的加密规则:
mysql>ALTER USER 'guaiyouyisi'@'%' IDENTIFIED WITH mysql_native_password BY 'Guaiyouyisi.';
7、配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
重新启动mysql服务,查看数据库默认编码如下所示:
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid