CentOS7 通过 tar 安装MySQL

参考引用:https://blog.csdn.net/m0_67393413/article/details/126326706

1.安装前准备

1.1 清理原有的mysql数据库

<1> 查找相关安装包

rpm -qa | grep mysql 

<2> 可能显示的查找结果

mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64

<3> 使用命令依次删除上面的程序

yum remove mysql-xxx-xxx-xxx

<4> 查找出所用的配置文件

find / -name mysql

<5> 可能显示的查找结果

/etc/logrotate.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/local/mysql

<6> 使用命令依次删除上面的配置文件

rm -rf /var/lib/mysql

1.2 删除MariaDB的文件

由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.

<1> 查找相关安装包

rpm -qa | grep mariadb 

<2> 可能显示的查找结果

mariadb-libs-5.5.68-1.el7.x86_64

<3> 强制删除

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

使用命令 rpm -e mariadb-libs-5.5.68-1.el7.x86_64 可能出现错误,所以直接强制删除

rpm -e mariadb-libs-5.5.68-1.el7.x86_64
错误:依赖检测失败:
	libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-9.el7.x86_64 需要
	libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-9.el7.x86_64 需要

1.3 添加账户 mysql(非必要)

给当前linux系统添加账户,以后可用于管理mysql数据库

userdel mysql
groupdel mysql
groupadd mysql
useradd -g mysql mysql

2.安装 mysql

以 mysql 5.7 版本的安装为例

2.1 下载

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
选择对应的环境下载即可。下载完成后再通过xftp等工具将安装包上传到Centos7系统中,然后进行安装

2.2 解压、创建目录、安装

cd /home/suty                                            # 首先通过cd命令进入到安装包所在的目录、根据情况自行修改
tar -zxvf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz     # 解压
mv mysql-5.7.39-linux-glibc2.12-x86_64 /usr/local/mysql  # 移动文件到指定目录
cd /usr/local/mysql && mkdir data                        # 新建文件夹data,MySQL的表结构、表数据及索引等信息都存储在该目录下

# 进入mysql的目录开始安装,查看安装信息记住初密码
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize   

记住初始密码:找有[Note] A temporary password这一行

[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

2022-10-10T13:56:15.343774Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-10-10T13:56:15.774620Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-10-10T13:56:15.859885Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-10-10T13:56:15.921524Z 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: 4eea8609-48a3-11ed-bb8c-000c29d67f38.
2022-10-10T13:56:15.924606Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-10-10T13:56:16.308821Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-10-10T13:56:16.308849Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-10-10T13:56:16.311186Z 0 [Warning] CA certificate ca.pem is self signed.
2022-10-10T13:56:16.500268Z 1 [Note] A temporary password is generated for root@localhost: lG_dQ+sN!7   #记住密码,后面再改一个容易记的

2.3 移动启动文件

将安装后的路径 /usr/local/mysql/support-files/中的mysql.server 复制到 /etc/init.d/mysqld

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

2.4 修改配置文件 my.cnf

# 1.如果 /usr/local/mysql/support-files 有 my-default.cnf 则将其拷贝到 /etc/my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 

# 2.如果没有则在/etc下新建my.cnf文件
touch /etc/my.cnf

# 3.编辑配置文件,参考【my.cnf 配置文件内容】
vi /etc/my.cnf

# 4.文件权限
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysqld
点击查看【my.cnf 配置文件内容】
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

[mysqld]
skip-name-resolve

# 设置3306端口
port = 3306

# 设置mysql的安装目录
basedir=/usr/local/mysql

# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data

# 允许最大连接数
max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

2.5 添加软链接 | 配置环境变量

为了便于执行 MySQL命令的时候不用到MySQL的安装目录,添加软链接或配置环境变量
添加软链接和配置环境变量任选一个操作即可,同时都进行配置也没问题

  • 添加软链接
ln -fs /usr/local/mysql/bin/mysql /usr/bin/mysql 
  • 设置环境变量
vi /etc/profile                                      # 设置环境变量,以便能在任意地方运行mysql命令登录数据库

## 在文件的最后,加上下面三行:## 
# mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin

source /etc/profile                                 # 刷新,环境变量配置生效

2.6 设置防火墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent    # 防火墙开放mysql数据库端口3306
firewall-cmd --reload                                         # 重启防火墙
firewall-cmd --list-all                                       # 查看防火墙状态,检查是否已开放3306端口

2.7 mysql修改密码、远程权限

/etc/init.d/mysqld start        #(1)启动mysql(或者使用service mysqld start)
mysql -u root -p                #(2)然后输入第03步的初始密码,后登录,以下在mysql里执行
mysql> set password = password('778899');       # 修改密码也可以指定用户:set password for 'root'@'localhost'=password('778899');
## 如果出错,试试这个修改命令: ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '778899@Xm';
mysql> flush privileges;                        # 刷新配置
mysql> grant all privileges on *.* to 'root'@'%' identified by '778899' with grant option;   # 添加远程访问本服务器的MySQL数据库权限问权限
mysql> flush privileges;                        # 刷新配置
mysql> exit;                                    # 退出mysql

如果密码创建错了,重建方法参考:https://blog.csdn.net/qq_36631900/article/details/103404515

2.8 重启MySQL

使用以下任一命令,重启MySQL

/etc/init.d/mysqld restart
./support-files/mysql.server restart
service mysqld restart

2.9 设置开机启动

可能非必要,可以reboot重启验证一下

chkconfig --list mysqld   # 检查自启动项列表中没有mysqld
chkconfig --add mysqld    # 如果没有设置过,就添加

posted on 2022-10-12 23:55  これから  阅读(55)  评论(0)    收藏  举报

导航