centos7.4安装MySQL
前言
本文记录`centos7.4安装MySQL过程和遇到的问题。
一、虚拟机安装centos7.4
可以参考:安装教程 里面有详细的安装教程和配置说明。
二、centos7.4安装MySQL
1.MySQL下载
MySQL下载:下载地址 如图选择MySQL数据库版本,这里以5.6.51版本为例,系统版本选择红帽(centos内核为红帽),选择7版本,选择 RPM Bundle版本下载
2.MySQL安装
准备工作
2.1. 卸载MariaDB
注意:一定要将mariaDB包和自带mysql包卸载干净,否则安装时出现各种奇妙错误,导致失败。
rpm -qa | grep -i mariadb //查看有没有安装mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 //如果有,卸载MariaDB
2.2. 卸载已有Mysql
//卸载旧版本的Mysql
rpm -qa | grep -i mysql //查看有没有安装mysql
rpm -e MySQL-client-5.6.38-1.el7.x86_64 //如果有,卸载旧版本Mysql
//删除服务
chkconfig --list | grep -i mysql //查看服务
chkconfig --del mysql //删除服务
//删除mysql分散的文件夹
whereis mysql //查出相应的mysql文件夹,也可以用find / -name *mysql*
rm -rf /use/lib/mysql //删除
2.3. 安装依赖
注意:先装好依赖,再装mysql。即使顺序出错,装完依赖一定要卸载mysql并重新装mysql,否则mysql装上了也会出现各种错误
yum install perl
yum -y install autoconf //此包安装时会安装Data:Dumper模块
2.4. 增加mysql用户组
cat /etc/group |grep mysql //检查mysql用户及组是否存在,如果没有执行下面命令
groupadd mysql //创建组
useradd -r -g mysql mysql //创建用户并把该用户加入到组mysql,这里的 -r是指该用户是内部用户,不允许外部登录
passwd mysql //给用户mysql设置密码,需要输入2次
2.5. 安装Mysql
解压mysql
tar -xvf MySQL-5.6.51-1.el7.x86_64.rpm-bundle.tar //注意,是-xvf不是-zxvf
安装mysql
rpm -ivh MySQL-client-5.6.51-1.el7.x86_64.rpm //-i是安装,-v是列出更多详细信息,-h是在安装时列出hash标记
rpm -ivh MySQL-devel-5.6.51-1.el7.x86_64.rpm
rpm -ivh MySQL-server-5.6.51-1.el7.x86_64.rpm
3.MySQL配置
3.1. Mysql初始化
可能会出现以下错误
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
新安装的mysql服务后,一般需要执行数据库初始化操作:
/usr/bin/mysql_install_db --user=mysql
执行初始化命令之后,关闭命令框,重新进入后再进行配置,否则启动会停止MySQL服务不成功。
3.2. 修改密码
service mysql status //查看mysql服务状态
# 如果是开启服务状态,关闭服务方法
find / -name mysql.server //查看服务路径
# 服务路径
/usr/share/mysql/mysql.server
# 关闭服务
/usr/share/mysql/mysql.server stop
# 启动服务
/usr/share/mysql/mysql.server start
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & //绕过密码登录
mysql -u root -p //登录
use mysql //切换数据库
select Host,User,Password from user; //查询用户
UPDATE user SET password=password("root") WHERE user='root'; //修改密码
quit //退出
service mysql restart //重启mysql服务
mysql -u root -proot // -proot,p代表password,root是密码
use mysql //切换数据库
set password = password('root'); //第一次登陆必须修改mysql密码
flush privileges; //刷新权限
//赋予任何主机访问数据的权限(远程访问)
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges; //刷新权限
quit //退出 mysql
service mysql restart //重启mysql
3.3. 让防火墙开放开3306端口(Centos7以上是由firewall来管理的)
//查看firewall状态(runing:运行,not runing:没有运行),如果没有运行,用systemctl start firewalld启动
firewall-cmd --state
firewall-cmd --permanent --zone=public --add-port=3306/tcp //添加3306端口
firewall-cmd --reload //重新加载firewall
3.4. 客户端连接测试
# IP查看命令
ifconfig -a
[root@localhost network-scripts]# ifconfig -a
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.111.128 netmask 255.255.255.0 broadcast 192.168.111.255
inet6 fe80::20c:29ff:feb5:27eb prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b5:27:eb txqueuelen 1000 (Ethernet)
RX packets 2690 bytes 330573 (322.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1209 bytes 147010 (143.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3.4. 设置mysql开机启动
chkconfig --list mysql //查看mysql服务
chkconfig mysqld on //开启MySQL服务自动开启命令
chkconfig mysql on //开启MySQL服务自动开启命令