Centos7将默认数据库mysql替换成了Mariadb,如果想继续使用mysql 需要卸载Mariadb 再安装mysql;当然也有的直接安装mysql会覆盖mariadb,保险起见还是先卸载
1.查看是否安装了mariadb
rpm -qa |grep -i mariadb
2.卸载已经安装的:
yum remove mariadb*
3. cd /usr/src
4.下载mysql的rmp包到第3步的路径下:
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
这里提以下 -c这个参数意思,就是下载到一半的时候断掉,下次wget可以继续下载的意思。
5.yum -y install mysql57-community-release-el7-10.noarch.rpm
6.安装mysql服务器:
yum -y install mysql-community-server
7.安装完成后就可以启动了:systemctl start mysqld
Systemctl status mysqld可以查看mysql服务器的状态,显示绿色的active(running)就表示安装成功了
8.如果想要进入到mysql,需要知道mysql的默认密码
grep "password" /var/log/mysqld.log
返回的内容类似:A temporary password is generated for root@localhost: jw>Q*:pru6Tm
9.输入命令mysql -u root -p
回车后输入上一步的默认密码
10.进来以后需要修改密码,修改密码后才能进行其他操作:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
这里的新密码输入一个字符数字和特殊符号组合的并且大于8位数的密码就可以。
11.如果觉得密码设置的过于复杂,想简单点,可以通过下面的命令,要先修改密码才能进行下面的操作:
SHOW VARIABLES LIKE 'validate_password%';
设置密码的验证强度等级为LOW:
set global validate_password_policy=LOW;
设置密码长度为6位:
set global validate_password_length=6;
修改完密码规则后再重新修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
12.开启mysql的远程访问
grant all privileges on *.* to 'root'@'192.168.1.113' identified by '输入一个密码' with grant option;
192.168.1.113是想要允许远程访问的电脑IP,如果是想要所有的电脑都能访问,将这个IP换成%即可。用户名root,也可以改成其他的,密码就是后面输入的密码。
开启远程访问后,用192.168.1.113这台电脑访问下mysql数据库,用root用户名登陆,密码输入第13步设置的密码,就可以成功远程登陆mysql了。
13.设置防火墙,添加开放端口
设置mysql的:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
--permanent是永久生效的意思,如果没有这个参数,重启电脑后就失效了。
设置tomcat的:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
设置完记得重启:systemctl restart firewalld
14.进入mysql,然后输入status
mysql> status
发现有两个charset编码不是utf8,可以修改下mysql的主配置文件,输入quit退出mysql,然后进入下面这个路径:
vi /etc/my.cnf
按照如下图修改:
修改完成后关闭my.cnf
重启mysql服务:systemctl restart mysqld
然后再次进入mysql:mysql -u root -p
输入status,发现编码都变成utf8了
进入windows,打开cmd,输入mysql -h 192.168.1.xx -P 3306 -u root -p
输入密码也可以进入mysql了。
忘记密码:
忘记了设置的密码,报1045错,但是还记得root的密码,可以简单执行下面的步骤来改一下密码。
执行命令:
use mysql;
SELECT HOST,USER,authentication_string FROM USER;
发现表中有4条记录:
authentication这列是密码列,最后一条放开访问的那台电脑,忘记密码的那个,第一行的密码是我们设置的密码,就直接将最后一行改成我们知道的密码:
updata USER SET authentication_string='第一行的密码' WHERE HOST='192.168.1.113';
另外还可以设置不用密码直接进入mysql
vi /etc/my.cnf
在[mysqld]下面加上skip-grant-tables
加这两句话意思就是进入mysql不需要密码。