安装方式选择

安装方式特点
rpm安装简单,灵活性差,无法灵活选择版本、升级
rpm repository安装包极小,版本安装简单灵活,升级方便,需要联网安装
通用二进制包安装比较复杂,灵活性高,平台通用性好
源码包安装最复杂,时间长,参数设置灵活,性能好

在之前的文章中:在 Centos7 上根据官方文档安装 MySQL57

使用的就是 rpm repository 方式来安装

这次使用 rpm 的方式进行安装,安装包从国内的清华源下载

下载安装包

清华源地址:清华大学开源软件镜像站

MySQL 下载地址:downloads

选择对应的版本,进入后通过 Ctrl + F 搜索关键词:rpm-bundle.tar

(这里直接下载 rpm-bundle 全量包。包括了所有需要的组件。)

选择自己需要的版本,比如我选择的是最新的 5.7 版本:mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

通过 wget 指令下载到本地

1
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

安装 MySQL

检查环境

首先检查系统是否安装了 mariadb

1
rpm -qa|grep -i mariadb

删除系统自带的 mariadb

1
yum remove mariadb-libs

安装 mysql 的依赖

(如果没有 mysql 依赖环境,在安装 mysql-community-server 会报错)

1
2
3
yum install libaio
yum install perl
yum install net-tools

解压下载好的安装包

1
tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

其中需要安装的

  • mysql-community-client-5.7.35-1.el7.x86_64.rpm
  • mysql-community-common-5.7.35-1.el7.x86_64.rpm
  • mysql-community-libs-5.7.35-1.el7.x86_64.rpm
  • mysql-community-server-5.7.35-1.el7.x86_64.rpm

开始安装

在 mysql 的安装文件目录下执行:(必须按照顺序执行!!!)

rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm

-i –install 安装软件包

-v –verbose 提供更多的详细信息输出

-h –hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条

查看结果

执行 mysqladmin --version 命令如果打出消息,即为成功

1
mysqladmin --version

或者执行 rpm -qa|grep -i mysql 命令,查看是否安装成功

1
rpm -qa|grep -i mysql

配置 MySQL

初始化服务

为了保证数据库目录与文件的所有者为 mysql 登录用户,如果是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:

1
mysqld --initialize --user=mysql

–initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登录后要求需要设置一个新的密码

查看密码

1
cat /var/log/mysqld.log

启动 mysql

启动:systemctl start mysqld

关闭:systemctl stop mysqld

重启:systemctl restart mysqld

查看状态:systemctl status mysqld

查看进程:ps -ef | grep -i mysql

开机启动

mysql 服务默认开机自启动

1
systemctl list-unit-files|grep mysqld.service

登录并修改密码

1
mysql -u root -p
1
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

安装后目录结构

参数路径解释备注
–basedir/usr/bin相关命令目录mysqladmin mysqldump 等命令
–datadir/var/lib/mysql/mysql 数据库文件的存放路径
–plugin-dir/usr/lib64/mysql/pluginmysql 插件存放路径
–log-error/var/log/mysqld.logmysql 错误日志路径
–pid-file/var/run/mysqld/mysqld.pid进程 pid 文件
–socket/var/lib/mysql/mysql.sock本地连接时用的 unix 套接字文件
/usr/share/mysql配置文件目录mysql 脚本及配置文件
/etc/systemd/system/multi-user.target.wants/mysqld.service服务启停相关脚本
/etc/my.cnfmysql 配置文件cat /etc/my.cnf

修改字符集

默认 latin1 字符编码,不支持中文

保存中文会报错

1
vi /etc/my.cnf

在最后加上中文字符集配置:character_set_server=utf8

重启生效

1
systemctl restart mysqld

如果之前创建的数据库,创建的表字,符集还是 latin1

修改以前数据库的字符集

1
alter database test(数据库名) character set 'utf8';

修改以前数据表的字符集

1
alter table mytbl(表名) convert to character set 'utf8';

但是原有的数据如果不是用utf8 编码的话,数据本身编码不会发生改变。

已有数据需要导出或删除,然后重新插入。

查看字符集

1
show variables like 'character%';

配置远程连接

防火墙开启 http 服务,打开 3306 端口

1
2
3
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

查看效果

1
firewall-cmd --list-all

设置 MySQL 权限

1
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

测试连接