使用国内镜像源安装MySQL57
安装方式选择
安装方式 | 特点 |
---|---|
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 | yum install libaio |
解压下载好的安装包
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/plugin | mysql 插件存放路径 | |
–log-error | /var/log/mysqld.log | mysql 错误日志路径 | |
–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.cnf | mysql 配置文件 | 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 | firewall-cmd --add-service=http --permanent |
查看效果
1 | firewall-cmd --list-all |
设置 MySQL 权限
1 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; |