删除存在的MySQL版本
rpm -qa | grep mariadb
rpm -qa | grep mysql
rpm -e --nodeps chaxunchulaideMysql.xxx
下载MySQL压缩包
# 红帽系列版本专用
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.43-el7-x86_64.tar.gz
# 通用版本
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
创建mysql数据目录,并将压缩包放到该目录
# mysql base目录
mkdir -p /home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306
# mysql 数据目录
mkdir -p /home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/data
# 创建临时文件目录
mkdir -p /home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/tmp
在/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306目录创建my.cnf配置文件
[mysqld]
# 监听的ip地址,127.0.0.1,仅限本机访问,0.0.0.0 全地址可以访问(任何主机)
bind-address=0.0.0.0
#设置端口号
port=3306
#设置mysql运行用户
user=root
#设置mysql的安装目录
basedir=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306
# 设置mysql数据库的数据的存放目录
datadir=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/data
# 设置mysql以socket方式运行时sock文件位置
socket=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/tmp/mysql.sock
#设置错误日志存放位置
log-error=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/data/mysql.err
#设置进程id文件位置
pid-file=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/data/mysql.pid
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=100
# 服务器使用的默认字符集
character_set_server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 建议禁用符号链接,以防止各种安全风险
symbolic-links=0
#TIMESTAMP类型和其他的类型有点不一样,不添加该项配置,否则启动时,会报警
explicit_defaults_for_timestamp=true
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
进如/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/bin目录初始化数据库:
./mysqld --defaults-file=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/my.cnf --initialize --basedir=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306 --datadir=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/data
然后可以查看/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/data目录下MySQL的密码:
[root@localhost soft_binary]# cat mysql-5.7.43-el7-x86_64_3306/data/mysql.err
2023-08-02T08:05:23.281373Z 0 [Warning] InnoDB: New log files created, LSN=45790
2023-08-02T08:05:23.326987Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2023-08-02T08:05:23.342758Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 54dfef1a-310b-11ee-82b6-1c1b0de5337f.
2023-08-02T08:05:23.346429Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2023-08-02T08:05:24.108989Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2023-08-02T08:05:24.108996Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2023-08-02T08:05:24.111174Z 0 [Warning] CA certificate ca.pem is self signed.
2023-08-02T08:05:24.317626Z 1 [Note] A temporary password is generated for root@localhost: wef6B*L)JjxN
接下来构建MySQL服务:
cd /home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/support-files
cp mysql.server mysql3306.server
修改 mysql3306.server的配置,主要修改以下三个地方:
basedir=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306
datadir=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/data
conf=/home/david/soft_binary/mysql-5.7.43-el7-x86_64_3306/my.cnf
然后配置开机自启,并启动数据库:
# 复制服务启动文件
cp support-files/mysql3306.server /etc/init.d/mysql3306.server
# 修改为开机自启
chkconfig --level 345 mysql3306.server on
# 启动服务
sudo service mysql3306.server start
在Linux上连接数据库,因为我们修改了mysql.sock位置,所以使用以下命令连接:
mysql -uroot -h 127.0.0.1 -p
第一次登陆,所以我们要修改密码:
# alter方式修改
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; //记得修改自己的账户
flush privileges; //修改成功后刷新权限
最后我们在开启远程访问即可完成