前言
CentOS7 安装Mysql5.7
目前MySQL数据库按用户群分为社区版(Community Server)和企业版(Enterprise/commercial)。–commercial授权版本
社区版是免费下载的,GA(General Availability):官方推荐使用的版本
一、下载安装包
https://downloads.mysql.com/archives/community/
选择Red Hat Enterprise Linux RPM Bundle下载
在CentOS7服务器根目录下新建个存放软件安装包tool文件夹:
用secureFX 上传mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar至服务器
二、安装MYSQL
1.检查MySQL是否安装及版本信息
//检查系统中有无安装过mysql,如果安装过,请卸载。
rpm -qa|grep mysql
根据查询结果对mysql相关软件包进行卸载。
例如对于mysql-5.7.40.el6.x86_64这个包,卸载命令为:
rpm -e mysql-5.7.40-4.el6.x86_64 –nodeps
//说明:-e参数表示删除 –nodeps表示不校验依赖关系 主要卸载内容一般包括以下包
mysql-5.7.40-4.el6.x86_64
mysql-connector-odbc-5.7.40r1144-7.el6.x86_64
mysql-libs-5.7.40-4.el6.x86_64 mysql-devel-5.7.40-4.el6.x86_64
mysql-server-5.7.40-4.el6.x86_64
//检查是否存在mysql文件夹,如果有,全部删除
whereis mysql
find / -name mysql
//卸载CentOS7系统自带mariadb
//检查mariadb
rpm -qa|grep mariadb
//卸载mariadb
rpm -e --nodeps mariadb-libs
//删除etc目录下的my.cnf
rm /etc/my.cnf
2. 解压并安装
//使用tar命令解压
tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
严格按照顺序安装:
rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm
3. 配置数据库
//初始化添加默认字符集
vim /etc/my.cnf
//添加这二行
character_set_server=utf8
init_connect='SET NAMES utf8'
解决mysql中文乱码
character_set_server=utf8:设置默认字符集
UTF-8 init_connect=‘SET NAMES
utf8’:设置默认字符集UTF-8
//初始化
mysqld --initialize --console
//查看文件安装路径
whereis mysql
//查询文件的运行文件所在地址
which mysql
//创建一个mysql组和用户(若不存在)
groupadd mysql
useradd -r -g mysql mysql
//配置该组权限
chown -R mysql:mysql /var/lib/mysql/
//启动mysql服务
systemctl start mysqld
//查看初始化的临时密码并修改
cat /var/log/mysqld.log|grep localhost
//登录Mysql
mysql -uroot -p
//修改密码
alter user 'root'@'localhost' identified by 'newpassword';
//修改后exit命令退出,从新登录查看,安装成功。
//mysql使用sql语句的时候创建数据库,数据库名称不能包含-,否则会提示语法错误,例如:
mysql> create database ry-;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-' at line 1
//使用Navicat等客户端是可以用-,应该是客户端底层已经进行了转义,
在CentOS解决办法是创建的时候,数据库名字加上反单引号,反单引号在Esc键下面。
create database `ry-test`
//如果这个sql语句是在shell里,还要再加上\(反斜杠)进行转义才行
create database \`ry-test\`
//创建数据库后,使用source 命令导入本地备份的SQL文件
use ry-test; #使用已创建的数据库
set names utf8; # 设置编码
source /tool/mysql/ry-vue.sql # 导入备份数据库
三、开放远程登陆
//创建一个用户 支持远程连接
use mysql;
alter user 'root'@'%' identified with mysql_native_password by 'password';
flush privileges;
select host,user from user;
//查看防火墙状态
systemctl status firewalld
//开放Mysql防火墙端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
–zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent
#永久生效,没有此参数重启后失效
//关闭防火墙
systemctl stop firewalld
//开启防火墙
systemctl start firewalld
//重启防火墙
firewall-cmd --reload
//测试链接成功