MySQL8.0-安装 & 卸载

629 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

此次安装,经过十几次的安装与卸载,是可以正常使用的;

这里只记录了二进制文件方式安装,当然还有yum、rpm、docker等方式,这里就不多做介绍;

环境备注

操作系统 CentOS 7.7 64bit
MySQL 64bit 8.0.27 Linux - Generic 

通用二进制文件方式

此方式安装优势

  1. 避免与其它依赖冲突
  2. 使用编译器进行预编译后构建性能更佳

安装环境

清理 mariadb

搜索

rpm -qa|grep mariadb

如果存在,则删除

删除

rpm -e --nodeps mariadb-libs

libaio 库

搜索 libaio 库

# yum 系统
yum search libaio
# apt 系统
apt-cache search libaio

如果没有 libaio 库,则需要执行安装;

如果有,则跳过下一步

安装 libaio 库

# yum 系统
sudo yum install -y libaio
# apt 系统
sudo apt-get install -y libaiol

注意:如果安装了 libaio 库后,还提示 libaio.so.1 等类似的库,直接运行 yum install xxx 即可,缺什么install什么

检查配置文件

检查 /etc/my.cnf/etc/mysql 文件,如果存在则删除它们

下载MySQL Tar 包

网址

dev.mysql.com/downloads/m…

32位

选择:Linux - Generic (glibc 2.12) (x86, 32-bit), Compressed TAR Archive


64位

选择:Linux - Generic (glibc 2.12) (x86, 64-bit), Compressed TAR Archive


直链下载

# https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
cd /usr/local/
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

添加用户组

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

解压文件

sudo tar xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

创建符号链接

sudo ln -s /usr/local/mysql-8.0.27-linux-glibc2.12-x86_64 mysql

赋予权限

cd mysql
sudo mkdir mysql-files
sudo chmod 750 mysql-files
sudo chown -R mysql .
sudo chgrp -R mysql .

初始化 MySQL

my.cnf(配置忽略表名大小写, 可选)

由于需要设置表名忽略大小写,所以需要在 my.cnf 中加入以下内容

注意:如果没有 my.cnf 则手动在 /etc/my.cnf 创建一个

[mysqld]
lower_case_table_names=1

initialize

sudo bin/mysqld --initialize --user=mysql --lower-case-table-names=1

初始化完成后,会打印出一个临时密码,日志如下

密码要记住,待会需要使用这个密码登陆mysql

注意:如果选择不配置忽略表名大小写,这里的--lower-case-table-names=1需要去掉

2022-01-01T08:26:50.458169Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.27-linux-glibc2.12-x86_64/bin/mysqld (mysql ver in progress as process 12616
2022-01-01T08:26:50.473404Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-01-01T08:26:51.700329Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-01-01T08:26:53.536812Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
2022-01-01T08:26:53.536866Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
2022-01-01T08:26:53.651742Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: k+sETpaqg0Tz 

经测试,随机生成的密码如果包含了:“;”、“>”、“_”等符号,在登陆 MySQL时无法识别

需要在特殊符号前面加上 “\” 转义字符

设置 SSL

sudo bin/mysql_ssl_rsa_setup

设置所有权

  1. 将二进制文件的所有权更改为 root
  2. 将数据文件的所有权更改为 mysql
sudo chown -R root .
sudo chown -R mysql data mysql-files

复制启动脚本到 init.d

sudo cp support-files/mysql.server /etc/init.d/mysql

设置环境变量

此方式是临时的,如果关闭就没了

export PATH=$PATH:/usr/local/mysql/bin

可以在配置文件中永久配置

sudo vi /etc/profile

# profile 底部添加
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export MYSQL_HOME

目录展示

bin 			mysqld 服务器、客户端和工具集程序
data			日志文件、数据库
docs			info 格式的 MySQL 手册
include		        包含(header)文件
lib			库
LICENSE
man			UNIX 手册页面
mysql-files
README
share			其他支持文件,包括错误消息、示例配置文件以及用于数据库安装的 SQL 语句
support-files

启动 MySQL

使用服务

sudo service mysql start

使用 init.d

sudo /etc/init.d/mysql start

如果没找到此命令,则查看上面步骤:复制启动脚本到 init.d

第一次启动成功后,会打印如下日志,意思是将启动日志放入了此路径

Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
. SUCCESS! 

登陆 MySQL

mysql -u root -pk+sETpaqg0Tz

-p:后面拼接的是上面日志打印的密码, 需要换成你自己的

自定义 root 用户密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql2022';

mysql2022:是自定义的密码

退出登陆

exit

停止 MySQL

安全停止

mysqladmin -uroot -p shutdown

使用服务

sudo service mysql stop

使用 init.d

sudo /etc/init.d/mysql stop

查看状态

使用服务

sudo service mysql status

使用 init.d

sudo /etc/init.d/mysql status

卸载 MySQL

移除符号链接

检查 mysql 指向位置

sudo ls -lh mysql

删除 mysql

sudo rm mysql
sudo rm -r mysql-8.0.27-linux-glibc2.12-x86_64
sudo rm /etc/init.d/mysql