Centos7安装(配置)Mysql5.7
环境:Centos7、JDK1.8(已经安装成功)、MySQL5.7
步骤:
1.卸载Mariadb
2.通过Wget下载mysql5.7
3.安装&配置
通过官网下载Mysql5.7版本,然后移动到Centos系统上。也可以通过wget命令下载。
1.卸载mariadb
先查询mariadb相关安装包.卸载mariadb。mariadb是系统自带的MySQL的妹妹数据库。
[root@localhost ~]# rpm -qa|grep mari [root@localhost ~]# rpm -e --nodeps mariadb-libs [root@localhost ~]# rpm -qa|grep mari marisa-0.2.4-4.el7.x86_64 |
2.Wget安装mysql5.7
通过wget下载mysql5.7安装包.我们进入/opt,因为/opt存放我们的安装软件,这是一个好习惯。
如果是通过我分享的软件包,就不需要执行这一步骤。可跳过这一步骤。挂载的问题在JDK中已经说明。
#将mysql5.7安装包下载到opt,也可以选择其它目录。看个人选择 [root@localhost ~]# cd /opt/
#查看当前路径是否是opt [root@localhost opt]# pwd /opt
#查看当前目录的文件情况 [root@localhost opt]# ll 总用量 0 drwxr-xr-x. 2 root root 6 10月 31 2018 rh
#加-c表示断点续传 当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数 [root@localhost opt]# wget -c http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar |
3.安装&配置
(1).安装Mysql5.7
#通过tar解压, 只要后缀为.tar,则使用-xvf,xvf是固定的格式 [root@localhost opt]# tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
#通过rpm命令软件包管理工具,安装mysql依赖。一定要按顺序执行,否则可能出现依赖的问题 [root@localhost opt]# rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
#查看mysql的rpm文件 [root@localhost opt]# ls
|
(2).启动mysql5.7
#运行systemctl start mysqld.service,启动mysql [root@localhost opt]# systemctl start mysqld.service
#查看mysql状态 [root@localhost opt]# systemctl status mysqld.service |
(3).初始化mysql
#Mysql自动给root用户设置随机密码,运行grep "password" /var/log/mysqld.log可看到当前密码 [root@localhost opt]# grep "password" /var/log/mysqld.log 2020-11-19T12:09:39.357942Z 1 [Note] A temporary password is generated for root@localhost: uh=FR-wzg0A(
[root@localhost ~]# mysql -uroot -p Enter password: uh=FR-wzg0A(
#修改默认密码 #默认的情况下设置的密码是有限制的,太简单不能设置;通过设置可以修改成简单密码
#简单密码设置 #更改密码策略为LOW: mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec)
#更改密码长度 mysql> set global validate_password_length=0; Query OK, 0 rows affected (0.00 sec)
#修改默认密码 mysql> set password for 'root'@'localhost' = password('root123.'); Query OK, 0 rows affected, 1 warning (0.00 sec) |
(4).其它设置
[1].开启开机自启动mysql
#设置linux开机自启动mysql;如果失败了,可自行百度 [root@localhost opt]# systemctl enable mysqld.service
#查看是否自启动成功;[' ']中若带*则为开机自启动 [root@localhost ~]# ntsysv |
[2].端口设置
如需外网访问需要开设端口等一些设置。
#向防火墙添加允许访问的端口时,防火墙的状态必须是开启状态 [root@localhost ~]# systemctl start firewalld.service #固定模式记住就行,只需要修改端口号即可。 [root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent success [root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent success
#重启防火墙,修改防火墙后都要执行该操作 [root@localhost ~]# firewall-cmd --reload success # 命令含义:
# –zone #作用域 # –add-port=80/tcp #添加端口,格式为:端口/通讯协议 # –permanent #永久生效,没有此参数重启后失效 |
[3].mysql远程设置
若想通过远程访问,或者通过本地的navicat、SQLyog,则必须要配置远程访问用户。如果没配置,访问时会出现10016、1130等问题。
#对系统数据库的root账户设置远程访问的密码,与本地的root访问密码并不冲突: mysql> grant all privileges on *.* to 'root'@'%' identified by 'root123.' with grant option; Query OK, 0 rows affected, 1 warning (0.00 sec) |
常见的MySQL错误:
问题1:连接MySQL的10060错误:Can't connect to MySQL server on '*.*.*.*'(10060)
解决方法:
网络问题连接不通:设置连接网络 服务未启动:systemctl start mysqld.service 防火墙未关闭(不推荐,生产环境不可以关闭):systemctl stop firewalld.service 服务器上防火墙端口未开放: firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload 权限不足:使用root登录MySQL执行 grant all privileges on *.* to 'root'@'%' identified by 'root123.' with grant option;
问题2:ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL serve
解决方法:
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql" 数据库里的 "user" 表里的 "host"项,从"localhost"改称"%"。
权限不足:使用root登录MySQL执行 grant all privileges on *.* to 'root'@'%' identified by 'root123.' with grant option;
解决方法:
[root@localhost ~]# rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm --force --nodeps |
防火墙常用操作
firewall-cmd --reload #重启
systemctl stop firewalld.service #停止
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running) |