likes
comments
collection
share

在Centos7安装mysql(8.0.13)

作者站长头像
站长
· 阅读数 24

安装流程

首先准备安装包

这里下载的是 mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz 安装包,并将其直接放在了 root⽬录下

卸载系统自带的MARIADB(如果有)

如果系统之前⾃带 Mariadb,可以先卸载。

执行 rpm -qa|grep mariadb,查询已安装的 Mariadb 安装包: 在Centos7安装mysql(8.0.13) 执行代码卸载上述软件:

yum -y remove mariadb-server-5.5.56-2.el7.x86_64

yum -y remove mariadb-5.5.56-2.el7.x86_64

yum -y remove mariadb-devel-5.5.56-2.el7.x86_64

yum -y remove mariadb-libs-5.5.56-2.el7.x86_64

解压MYSQL安装包

将上面准备好的 MySQL 安装包解压到 /usr/local/目录,并重命名为 mysql

tar -xvf /root/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz -C /usr/local/

mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql

修改MSQL目录的归属用户

在Centos7安装mysql(8.0.13)/etc 目录下新建 my.cnf 文件

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysqld]
skip-name-resolve
#设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装⽬录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放⽬录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

同时使用如下命令创建/var/lib/mysql目录,并修改权限:

mkdir /var/lib/mysql

chmod 777 /var/lib/mysql

正式开始安装MYSQL

执行如下命令正式开始安装:

cd /usr/local/mysql

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

复制启动脚本到资源目录

执行如下命令复制:

在Centos7安装mysql(8.0.13)

并修改/etc/init.d/mysqld,修改其basedirdatadir为实际对应目录:

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

设置MYSQL系统服务并开启自启

首先增加mysqld服务控制脚本执行权限:

chmod +x /etc/init.d/mysqld

同时将mysqld服务加入到系统服务:

chkconfig --add mysqld

最后检查mysqld服务是否已经生效即可:

chkconfig --list mysqld

在Centos7安装mysql(8.0.13)

这样就表明mysqld服务已经生效了,在2、3、4、5运行级别随系统启动而自动启动,以后可以直接使用service命令控制mysql的启停。

启动MYSQLD

直接执行:

service mysqld start

在Centos7安装mysql(8.0.13)

将 MYSQL 的 BIN 目录加入 PATH 环境变量

这样方便以后在任意目录上都可以使用mysql提供的命令。

编辑 ~/.bash_profile 文件,在文件末尾处追加如下信息:

在Centos7安装mysql(8.0.13)

最后执行source ~/.bash_profile使环境变量生效

首次登陆MYSQL

root账户登录mysql,使用上文安装完成提示的密码进行登入:

mysql -u root -p

在Centos7安装mysql(8.0.13)

接下来修改ROOT账户密码

在mysql的命令行执行如下命令即可,密码可以换成你想用的密码即可:

在Centos7安装mysql(8.0.13)

设置远程主机登录

在Centos7安装mysql(8.0.13)

远程登录之前需要开放防火墙的权限

在Centos7安装mysql(8.0.13)

最后利用 NAVICAT 等工具进行测试

问题处理

1. 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded(navicat登录报错)

原因:旧版的navicat登录密码加密方式与mysql 8以上的加密方式不匹配

解决方案:创建一个新用户用于navicat登录

创建一个用户 navicat赋予远程访问与访问所有数据库的权限

在Centos7安装mysql(8.0.13)

‘修改加密方式

在Centos7安装mysql(8.0.13)

2. 安装pv监控数据库导入进度

原因:对于一些过大的数据库导入,会有长时间等待,产生死机焦虑

解决方案:使用插件监控数据导入

首先需要安装EPEL仓库,执行代码sudo yum install epel-release

然后安装pv工具,执行代码sudo yum install pv

执行命令 pv xxx.sql | mysql -u root -p mydatabase监控数据库导入情况。

在Centos7安装mysql(8.0.13)

3. mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

原因:按照上述教程安装后,mysqldump的默认mysql.sock文件地址与实际mysql.sock地址不一致

解决方案:

由于mysqldump获取mysql.sockmy.cnf中配置的地址不一致,当需要备份时执行如下命令:

mysqldump --socket=/var/lib/mysql/mysql.sock -u username -p database_name > backup.sql

4. 1031 - Table storage engine for '#sql-2ca7_20' doesn't have this option,引擎切换当从myisam切换到innodb时报错

原因:myisam引擎与innodb引擎的Row_format字段有区别

解决方案:

这里的临时表是你创建了还未修改的完成Innodb的表。

导致这一问题的主要原因是,myisam中的Row_format字段取值仅有:fixed/dynamic/compressed。而在innodb中的Row_format字段取值有:compressed/dynamic/compact/redundant。

解决方法,在切换引擎之前先商量好Row_format字段如何修改。

转载自:https://juejin.cn/post/7383258697470230578
评论
请登录