系统版本: CentOS 7
MySQL版本: 8.0.20
在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
如果直接安装MySQL,会和MariaDB的文件冲突。
因此,需要先卸载自带的MariaDB,再安装MySQL。
rpm -qa|grep mariadb
rpm -e --nodeps 【文件名】
rpm -qa|grep mariadb
注意:1、卸载前要切换root环境,否则提示无权限。2、mariadb可能有两个文件都要卸载
例如:
[liangyan@localhost ~]$ rpm -qa|grep mariadb
mariadb-devel-5.5.68-1.el7.x86_64
mariadb-libs-5.5.68-1.el7.x86_64
[liangyan@localhost ~]$ su root
密码:
[root@localhost liangyan]#
[root@localhost liangyan]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost liangyan]#
[root@localhost liangyan]# rpm -e --nodeps mariadb-devel-5.5.68-1.el7.x86_64
https://dev.mysql.com/downloads/mysql/
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
如果后缀是.tar.gz 解压方法
tar -zxvf 文件名
如果后缀是.tar.xz 解压方法
tar -zxvf 文件名
mv 原文件夹名 mysql8.0.20
ln -s 文件夹名 mysql8.0.20
export PATH=$PATH:/data/software/mysql8/bin
centos7配置文件一般在 /etc/profile,使用vi进行修改
vi常用命令:
按i 进入insert状态可以进行编辑操作
按ESC键 跳到命令模式(底部的insert消失,输入下面的命令可进行相应操作),然后:
:q! 不保存文件,并退出vi
:wq 保存文件并退出vi
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq! 强制保存文件,并退出vi
使用追加语句直接在文件后面编辑
echo “export PATH=$PATH:/usr/local/mysql/bin">> /etc/profile
vi /etc/profile
例如:

按Esc后,输入:“:wq” 回车
更新配置文件:
source /etc/profile
# 创建一个用户组:mysql
groupadd group_name
# 创建一个系统用户:mysql,指定用户组为mysql
useradd -r -g name group_name
创建用户组:groupadd
创建用户:useradd
-r:创建系统用户
-g:指定用户组
mkdir -p /data/software/mysql8.0.20/datas
# 更改属主和数组
chown -R group_name:name /data/software/mysql8.0.20/datas
# 更改模式
chmod -R 750 /data/software/mysql8.0.20/datas
在/data/software/mysql8.0.20/下,创建my.cnf配置文件,用于初始化MySQL数据库
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /data/software/mysql8.0.20
# 数据存放目录
datadir = /data/software/mysql8.0.20/datas/mysql
log-bin = /data/software/mysql8.0.20/datas/mysql/mysql-bin
innodb_data_home_dir =/data/software/mysql8.0.20/datas/mysql
innodb_log_group_home_dir =/data/software/mysql8.0.20/datas/mysql
#日志及进程数据的存放目录
log-error =/data/software/mysql8.0.20/datas/mysql/mysql.log
pid-file =/data/software/mysql8.0.20/datas/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
mysqld --defaults-file=/data/software/mysql8.0.20/my.cnf --basedir=/home/liangyan/mysql8.0.20/ --datadir=/data/software/mysql8.0.20/datas --user=mysql --initialize-insecure
参数(重要)
defaults-file:指定配置文件(要放在–initialize 前面)
user: 指定用户
basedir:指定安装目录
datadir:指定初始化数据目录
intialize-insecure:初始化无密码
查看 MySQL的 bin路径下,是否包含mysqld_safe,用于后台安全启动MySQL

# 完整命令
/data/software/mysql8/bin/mysqld_safe --defaults-file=/data/software/mysql8/my.cnf &
# 添加PATH变量后的命令(省略bin目录的路径)
mysqld_safe --defaults-file=/data/software/mysql/my.cnf &
# 查看是否启动
ps -ef|grep mysql
# 无密码登录方式
# 找到配置文件,一般在:/etc/my.cnf
# 用vi/vim把 skip-grant-tables 添加到配置文件里面 放在[mysqld]下面就可以了 #可以跳过密码登录、
# 重启服务 :
systemctl restart mysql
# 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)
mysql -u root -p
password:随机密码
#重置密码 只需要填写新密码即可
update mysql.user set password=password('新密码') where user='root' and host='localhost';
# 刷新权限
FLUSH PRIVILEGES;
注意:登录时可能遇到Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ ,有时某些版本mysql.sock不在tmp文件夹下,而在 /var/lib/mysql/mysql.sock 下,可以创建软连接解决:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
先登录到mysql,在执行
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
安装mysql-server
yum install -y mysql-server
启动服务
systemctl start mysqld.service
添加到开机启动
systemctl enable mysqld.service
关闭服务
systemctl stop mysqld.service
检查mysql service
systemctl status mysqld.service
关闭mysql服务
systemctl stop mysqld.service
查看是否安装过MySQL
rpm -qa | grep -i mysql
务必卸载干净,反复使用rpm -qa | grep -i mysql查看是否有残留。
查看mysql相关文件
find / -name mysql
删除上述命令查询出的文件或者文件夹
rm -rf xxx/xxx/xxx
-r是递归的删除参数表中的目录及其子目录。 目录将被清空并且删除。 当删除目录包含的具有写保护的文件时用户通常是被提示的。f是不提示用户,删除目录下的所有文件。请注意检查路径,输成别的目录就悲剧了。
删除my.cnf
rm -rf /etc/my.cnf