yum -y remover `rpm -qa | grep mysqld` #清理包含mysql的包
yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql #清理MySQL用户信息
rm -rf /etc/my* #删除以my开头的文件
rm -rf /var/lib/mysql #删除mysql目录
从mysql官网找到mysql的rpm包地址使用wget下载
wget 下载mysql.rpm 包
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
rpm -ivh mysql80-community-release-el7-5.noarch.rpm #解包
进入MySQL配置文件修改:配置MySQLyum源
vim /etc/yum.repos.d/mysql-community.repo #修改配置文件如下
mysql5.7配置
nabled=1 #开启5.7的MySQL
gpgcheck=0 #关闭密钥认证,如果开启必须修改密钥因为现在密钥过期了
mysql8.0配置
enabled=0 #关闭5.8的MySQL
gpgcheck=1 #密钥认证可以不用管他
安装mMySQL数据库:
yum -y install mysql-community-server
如果安装MySQL时没有关闭GPG密钥认证会安装失败;
下载如下密钥即可解决:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
修改完成后再执行一下mysql安装;
----------------------------------------------------------------------------------------------------------------
mysql --version #查询mysql版本信息
systemctl start mysqld #启动mysql数据库
systemctl enable mysqld #设置开机启动
grep passswor /var/log/mysqld.log #查看mysql密码 (后期修改的密码过滤不到只能看到初始化的密码)
----------------------------------------------------------------------------------------------------------------
如果首次启动过滤不到密码,进行如下操作:
systemctl stop mysqld #停掉MySQL数据库
rm -rf /var/lib/mysql/* #删除MySQL数据库 (这种操作只能再刚安装好时使用其他情况谨慎操作)
systemctl start mysqld #重启MySQL数据库
管下载MySQL安装包
MySQL官网地址:/www.mysql.com/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.38.tar.gz
tar -xvf mysql-boost-5.7.38.tar.gz -C /usr/local/ #解包--指定解压到目录
安装编译工具:
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
yum -y install cmake
mkdir -p /usr/local/mysql/{data,log} #这个目录可以不创建,编译安装好初始化时写的有这个目录会自动创建
useradd -r mysql -M -s /etc/false #创建mysql用户不创建家目录和登录权限‘false’也是不可登录;
cd /usr/local/mysql-5.7.38 #进入解包好的目录内
编译配参考下面代码块MySQL编译配置文件 1.;;
编译完成使用 $? 查看编译成功了没有;
编译完成后执行:make && amek install -j2 #-j2指定几个处理器执行编译安装加速执行;
cd /usr/local/msyql #进入MySQL的目录
chown -R mysql.mysql . #吧当前目录和目录下的组和属组设置成MySQL用户
#初始化MySQL数据库,初始化完成一定要记住密码因为没有开启log日志时没有记录密码的
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
编译配置查看MySQL编译安装文件 2.;
启动数据库:
cd /usr/local/mysql
./bin/mysqld_safe --user=mysql &
配置环境变量:
expro PATH=/usr/local/mysql/bin:$PATH
source /etc/profile #刷寻环境变量配置文件
1.在MySQL解压好包的目录下执行
cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
-------------------------------------------------------------------------------------------
编译配置解析:
提示:boost也可以使用如下指令自动下载,如果不下载bost压缩包,把下面的这一条添加到配置中第二行
-DDOWNLOAD_BOOST=1/
参数详解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装目录
-DSYSCONFDIR=/etc \ 配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \ 数据目录 错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \ 帮助文档
-DMYSQL_TCP_PORT=3306 \ 默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \ 默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \ 扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \ 支持的
-DWITH_READLINE=1 \ 上下翻历史命令
-DWITH_SSL=system \ 使用私钥和证书登陆(公钥) 可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \ 嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \ 从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1 默认的存储引擎,支持外键
----------------------------------------------------------------------------------------------
2.mysql配置文件编辑:
vim /etc/my.conf
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
user = mysql
basedir = /usr/local/mysql #指定安装目录
datadir = /usr/local/mysql/data #指定数据存放目录
socket = /tmp/mysql.sock
character_set_server = utf8
配置解析参数详解:
[client]
# 默认连接端口
port = 3306
# 用于本地连接的socket套接字
socket = /tmp/mysql.sock
# 编码
default-character-set = utf8
[mysqld]
# 服务端口号,默认3306
port = 3306
# mysql启动用户
user = mysql
# mysql安装根目录
basedir = /usr/local/mysql
# mysql数据文件所在位置
datadir = /usr/local/mysql/data
# 为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
socket = /tmp/mysql.sock
# 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character_set_server = utf8
vim /lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
#Documentation=man:mysqld(8)
#Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
#After=network.target
#After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000