CentOS版本:CentOS 7
MySQL版本:MySQL Community Server 8.4.3 LTS
1、下载 MySQL
打开MySQL官网:https://www.mysql.com/
直接下载网址:https://dev.mysql.com/downloads/mysql/
其他版本
2、上传 MySQL 文件到 CentOS
使用FinalShell远程登录工具,并且使用 root 用户连接登录(注意这里说的root用户连接登录是指这样的)
3、解压 MySQL
创建目录 /export/server/mysql
mkdir -p /export/server/mysql
解压到目录 /export/server/mysql
tar -xvf mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar -C /export/server/mysql
查看解压后情况
4、卸载自带的mariadb
查询已经安装的mariadb
rpm -qa | grep mariadb
删除已经安装的mariadb,通过上面查询得到的文件名为:mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e --nodeps 文件名
再查询已经安装的mariadb
rpm -qa | grep mariadb
5、准备安装环境,解决依赖环境问题
依次执行以下命令
yum update -y
yum install -y libaio
yum install -y net-tools
yum install openssl-devel.x86_64 openssl.x86_64 -y
yum -y install autoconf
yum install perl.x86_64 perl-devel.x86_64 -y
yum install perl-JSON.noarch -y
yum install perl-Test-Simple -y
6、安装 MySQL
进入目录 /export/server/mysql
cd /export/server/mysql
依次执行以下命令,依次安装 /export/server/mysql 目录下的各个.rpm文件
rpm -ivh mysql-community-common-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.4.3-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.4.3-1.el7.x86_64.rpm
7、设置配置文件
vim /etc/my.cnf
增加的配置内容以下
[mysqld]
# 设置 MySQL 服务运行的端口号
port = 3306
# 指定 MySQL 数据库的默认字符集
character-set-server=utf8mb4
# 允许外部访问
bind-address=0.0.0.0# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'# 设置 MySQL 允许访问的最大连接数
max_connections = 1000# 指定MySQL服务器存储数据文件的目录
datadir=/var/lib/mysql# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1# 事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
8、开放端口 ,3306
检查端口是否开放
firewall-cmd --zone=public --query-port=3306/tcp
开放端口,3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载
firewall-cmd --reload
再检查端口是否开放
firewall-cmd --zone=public --query-port=3306/tcp
9、 目录授权
chown -R mysql:mysql /var/lib/mysql/
10、启动 MySQL
启动服务
systemctl start mysqld.service
---------------------------------------------------------------------------------------------------------------------------------
MySQL启动不了(具体的报错忘记截图了,因为在【6、安装 MySQL】这个环节,确实有几个报错“依赖检测错误”),返回操作:
【4、卸载自带的mariadb 】、【6、安装 MySQL】、【7、设置配置文件】
至此 MySQL 安装成功
---------------------------------------------------------------------------------------------------------------------------------
启动服务
systemctl start mysqld.service
查看服务
systemctl status mysqld.service
11、设置开机自启动
systemctl enable mysqld
12、登录 MySQL
方式1:
获取临时密码进行登录,可以查看 /var/log/mysqld.log 文件,获取密码
vim /var/log/mysqld.log
或者通过关键字直接检索
grep "temporary password" /var/log/mysqld.log
登录
mysql -u root -p
查看MySQL版本
SELECT VERSION();
在没有修改密码之前,不允许执行SQL命令。
方式2:不推荐。除非通过方式1获取不到临时密码。
跳过密码验证进行登录,修改 /etc/my.cnf 配置文件,在[mysqld]后面任意一行添加 skip-grant-tables
vim /etc/my.cnf
重启 MySQL
systemctl restart mysqld
登录
mysql -u root
查看MySQL版本
SELECT VERSION();
13、修改 root 用户密码,因为有密码策略,使用复杂的密码(包含大小写字母、符号、数字)
alter user 'root'@'localhost' identified by '复杂的密码';
14、退出 MySQL,重新登录
exit;
mysql -u root -p
15、通过第三方图形化工具连接
出现这种情况的原因是因为:mysql数据库只允许自身所在的本机器连接,不允许远程连接。
查看连接权限
SELECT host, user FROM mysql.user WHERE user = 'root';
修改连接权限
update mysql.user set host = '%' where user ='root';
刷新配置
flush privileges;
再通过第三方图形化工具连接
---------------------------------------------------------------------------------------------------------------------------------
扩展
查看 mysql 命令所在的目录
which mysql
查看数据目录
方式1:
mysql -u root -p -e "show variables like 'datadir'"
方式2:查看配置文件
vim /etc/my.cnf