目录
1、准备Linux服务器
2、下载rmp安装包
方式1:网盘下载
方式2:官网下载
3、MySQL 安装
3.1 检查当前系统是否安装过 MySQL
3.2 将 MySQL 安装包拷贝到/opt/mysql 目录下
3.3 解压 MySQL 安装包
3.4 在安装目录下执行 rpm 安装命令
3.5 删除/etc/my.cnf 文件中 datadir 指向的目录下的所有内容
3.6 初始化数据库
3.7 查看临时生成的 root 用户的密码
3.8 启动 MySQL 服务
3.9 登录 MySQL 数据库
3.10 修改 root 用户的密码
3.11 开启远程连接(任意ip使用root用户连接)
4、开放3306端口,重启防火墙
操作环境说明:华为云Linux服务器
、CentOS-8
链接: https://pan.baidu.com/s/1NImvN-JxHybKd7cQe2fVKw
提取码: 8mtw
官网链接:https://dev.mysql.com/downloads/mysql/
rmp包的选择:
我们可以先选择 (mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar),所有rpm包的压缩包
也可以单独下载每个模块的rmp包
# 对rpm包名的解读
mysql-community-server-5.7.42-1.el7.x86_64.rpm
community : 社区版本
server : server模块
5.7.42-1 : MySQL版本
el7.x86_64 : 操作系统和版本信息
Tips:可以不同登入,直接下载
#安装前先检查下,是否之前安装过mysql服务
[root@worker01 ~]# rpm -qa | grep mysql
mysql-community-libs-compat-5.7.42-1.el7.x86_64
mysql-community-common-5.7.42-1.el7.x86_64
mysql-community-client-5.7.42-1.el7.x86_64
mysql-community-libs-5.7.42-1.el7.x86_64
mysql-community-server-5.7.42-1.el7.x86_64
#如果之前安装过,我们可以通过下面命令来卸载安装包
[root@worker01 ~]# rpm -e --nodeps 安装包名称
#移动安装包到/opt/mysql目录
[root@worker01 ~]# mv mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar /opt/mysql
#解压安装包
[root@worker01 ~]# tar -xf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar
#按顺序执行下面命令
rpm -ivh mysql-community-common-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.42-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.42-1.el7.x86_64.rpm --force --nodeps
Tips:按照顺序依次执行安装命令
如果在安装过程中遇到了缺少依赖的报错,我们可以通过添加 --force --nodeps,来跳过依赖检查,进行强制安装。
[root@worker01 ~]# rpm -ivh mysql-community-libs-compat-5.7.42-1.el7.x86_64.rpm
warning: mysql-community-libs-compat-5.7.42-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
error: Failed dependencies:
libcrypto.so.10()(64bit) is needed by mysql-community-libs-compat-5.7.42-1.el7.x86_64
libcrypto.so.10(libcrypto.so.10)(64bit) is needed by mysql-community-libs-compat-5.7.42-1.el7.x86_64
libssl.so.10()(64bit) is needed by mysql-community-libs-compat-5.7.42-1.el7.x86_64
libssl.so.10(libssl.so.10)(64bit) is needed by mysql-community-libs-compat-5.7.42-1.el7.x86_64
如果之前安装过mysql,datadir目录下会有数据存在,需要清空该目录
#查看 datadir 指定的目录
[root@worker01 mysql]# cat /etc/my.cnf | grep datadir
datadir=/var/lib/mysql
#删除 /var/lib/mysql 目录下的所有内容
[root@worker01 mysql]# cd /var/lib/mysql
#执行rm命令前,一定要查看所在目录的位置
[root@worker01 mysql]# rm -rf ./*
#初始化MySQL数据库
[root@worker01 mysql]# mysqld --initialize --user=mysql
#查看root用户的临时密码
[root@worker01 mysql]# cat /var/log/mysqld.log | grep 'temporary password'
#启动MySQL服务
[root@worker01 mysql]# systemctl start mysqld
#查看MySQL服务状态
[root@worker01 mysql]# systemctl status mysqld
#使用root的临时密码登入(不知道的可以看3.7)
[root@worker01 mysql]# mysql -uroot -p临时密码
mysql> set password = password("新密码");
mysql> update mysql.user set host='%' where user='root';
mysql> flush privileges;
我这用的云服务器,在页面可以直接添加配置
也可以使用命令在服务器上操作
#开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重启防火墙
systemctl restart firewalld
远程连接
报错:[HY000][1366] Incorrect string value: '\xE7\xBA\xA2\xE6\xA5\xBC...' for column 'title' at row 1
报错原因:执行 insert 语句时,插入数据含有中文
5.1 查看数据库字符编码集:
-- 查看数据库字符编码集
show variables like 'character%';
5.2 修改数据库字符编码集
-- 修改数据库编码集
alter database flink character set 'utf8';
5.3 如何修改已存在表的字符编码集
-- 修改已存在表的字符编码集
alter table books character set 'utf8';
-- 查询已存在表的字符编码集
show create table books;