第十周作业

一、通过编译、二进制安装MySQL5.7

(1)源码编译安装 MySQL5.7

1. 安装前准备

# 特定软件包安装
Rocky8 安装5.7版本需要安装 boost 1.59版本和rpcsvc-proto-1.4
下载地址及相关文章解析:
https://blog.csdn.net/u011641865/article/details/73498533
https://sourceforge.net/projects/boost/files/boost/1.59.0/

https://blog.csdn.net/xinshuzhan/article/details/110223746
https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
# 源码包下载
[root@Rocky8-mini2 ~]# ls
anaconda-ks.cfg  mysql-5.7.33.tar.gz
# 编译环境软件包下载
[root@Rocky8-mini2 ~]# yum -y install gcc gcc-c++  cmake  bison  zlib-devel libcurl-devel libarchive  ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel perl-Data-Dumper libtirpc-devel  

2. 编译安装及配置

# 准备mysql用户账户和安装的数据库目录
[root@Rocky8-mini2 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
[root@Rocky8-mini2 ~]# mkdir -p /data/mysql
[root@Rocky8-mini2 ~]# chown mysql:mysql /data/mysql

# 解压源码包到指定目录
[root@Rocky8-mini2 ~]# tar xvf mysql-5.7.33.tar.gz -C /usr/local/src/

# 进行编译安装
[root@Rocky8-mini2 ~]# cd /usr/local/src/mysql-5.7.33/
[root@Rocky8-mini2 mysql-5.7.33]# cmake . -DCMAKE_INSTALL_PREFIX=/apps/mysql -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc/ -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITHOUT_MROONGA_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
[root@Rocky8-mini2 mysql-5.7.33]# make -j 12 and make install

# 生成PATH变量并使其立即生效
[root@Rocky8-mini2 ~]# echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@Rocky8-mini2 ~]# . /etc/profile.d/mysql.sh

# 初始化数据库并开启mysql服务
[root@Rocky8-mini2 mysql]#  mysqld --initialize --user=mysql --datadir=/data/mysql
[root@Rocky8-mini2 mysql]# service mysqld start
Starting MySQL. SUCCESS!

3. 测试数据库

# 查看监听
[root@Rocky8-mini2 ~]# ss -nta
State            Recv-Q            Send-Q                         Local Address:Port                        Peer Address:Port            Process           
LISTEN           0                 128                                  0.0.0.0:22                               0.0.0.0:*                                 
ESTAB            0                 36                           192.168.119.138:22                         192.168.119.1:12855                             
LISTEN           0                 80                                         *:3306                                   *:*                                 
LISTEN           0                 128                                     [::]:22  [::]:*    

# 修改默认生成的密码
[root@Rocky8-mini2 mysql]# grep password /data/mysql/mysql.log
2022-05-24T10:11:17.643275Z 1 [Note] A temporary password is generated for root@localhost: Jgr3th<=EC_e
2022-05-24T10:12:41.505831Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
[root@Rocky8-mini2 mysql]# mysqladmin -uroot -p'Jgr3th<=EC_e' password wuhaolam

# 测试登录
[root@Rocky8-mini2 ~]# mysql -uroot -pwuhaolam
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.33 Source distribution

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> exit
Bye
[root@Rocky8-mini2 ~]#

(2)二进制安装 MySQL5.7

1. 安装前准备

# 下载软件包
[root@centos7-mini2 ~]# ls
mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
# 创建mysql用户账户及数据存放目录
[root@centos7-mini2 ~]# groupadd -r -g 306 mysql
[root@centos7-mini2 ~]# useradd -r -g 306 -u 306 -d /data/mysql mysql
[root@centos7-mini2 ~]# mkdir -p /data/mysql
[root@centos7-mini2 ~]# chown mysql:mysql /data/mysql/

2. 二进制安装及配置

# 解压所软件包到指定目录并创建软连接
[root@centos7-mini2 ~]# tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@centos7-mini2 ~]# cd /usr/local/
[root@centos7-mini2 local]# ln -sv mysql-5.7.33-linux-glibc2.12-x86_64/ mysql
‘mysql’ -> ‘mysql-5.7.33-linux-glibc2.12-x86_64/’

# 修改mysql目录的属主和数组为root
[root@centos7-mini2 local]# chown -R root:root /usr/local/mysql

# 生成PATH变量,并立即生效
[root@centos7-mini2 mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@centos7-mini2 mysql]# . /etc/profile.d/mysql.sh

# 修改配置文件
[root@centos7-mini2 mysql]# cat /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock

# 初始化数据库生成随机密码或空密码
生成随机密码
[root@centos7-mini2 mysql]# mysqld --initialize --user=mysql --datadir=/data/mysql
[root@centos7-mini2 mysql]# grep password /data/mysql/mysql.log
2022-05-22T12:26:47.873805Z 1 [Note] A temporary password is generated for root@localhost: tsHeWSyd9o;5
生成空密码
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql

# 开启MySQL服务并设置开机自启动
[root@centos7-mini2 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@centos7-mini2 mysql]# chkconfig --add mysqld
[root@centos7-mini2 mysql]# service mysqld start
Starting MySQL. SUCCESS!

3. 登录测试

# 修改密码1)生成随机密码时,修改密码
[root@centos7-mini2 mysql]# mysqladmin -uroot -p'tsHeWSyd9o;5' password wuhaolam2)生成空密码时,修改密码
[root@centos7-mini2 mysql]# mysqladmin -uroot password wuhaolam

# 测试登录
[root@centos7-mini2 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

二、Mariadb10.4.25的二进制安装

环境:
Rocky8-linux
1. 安装前准备

# 安装相关软件包
[root@Rocky8-mini2 ~]# yum -y install libaio numactl-libs  libncurses*

# 下载Mariadb二进制包
[root@Rocky8-mini2 ~]# ls
anaconda-ks.cfg  mariadb-10.4.25-linux-systemd-x86_64.tar.gz

# 创建 mysql 系统用户
[root@Rocky8-mini2 ~]# useradd -r -s /sbin/nologin mysql

2. 二进制安装及配置

# 解压缩软件包并创建软连接
[root@Rocky8-mini2 ~]# tar xvf mariadb-10.4.25-linux-systemd-x86_64.tar.gz -C /usr/local/ > /dev/null
[root@Rocky8-mini2 ~]# cd /usr/local/
[root@Rocky8-mini2 local]# ln -sv mariadb-10.4.25-linux-systemd-x86_64/ mysql
'mysql' -> 'mariadb-10.4.25-linux-systemd-x86_64/'

# 修改目录的属主和属组
[root@Rocky8-mini2 ~]# ll  -d /usr/local/mariadb-10.4.25-linux-systemd-x86_64/
drwxrwxr-x 12 wh wh 257 May 19 07:23 /usr/local/mariadb-10.4.25-linux-systemd-x86_64/
[root@Rocky8-mini2 local]# chown -R root:root mysql/
[root@Rocky8-mini2 local]# ll -d mysql/
drwxrwxr-x 12 root root 257 May 19 07:23 mysql/

# 创建数据库存放目录并修改其属主属组
[root@Rocky8-mini2 local]# mkdir -p /data/mysql
[root@Rocky8-mini2 local]# chown -R mysql:mysql /data/mysql

# 创建配置文件
[root@Rocky8-mini2 local]# mkdir /etc/mysql
[root@Rocky8-mini2 local]# vim /etc/mysql/my.cnf
[root@Rocky8-mini2 local]# cat /etc/mysql/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
skip_name_resolve = on
[mysqld_safe]
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock

# 安装数据库
[root@Rocky8-mini2 local]# cd mysql/
[root@Rocky8-mini2 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MariaDB/MySQL system tables in '/data/mysql' ...
OK
···

# 修改PATH变量
[root@Rocky8-mini2 mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@Rocky8-mini2 mysql]# . /etc/profile.d/mysql.sh

# 启动mariadb并设置开机自启动
[root@Rocky8-mini2 mysql]# cp support-files/systemd/mariadb.service /usr/lib/systemd/system
[root@Rocky8-mini2 mysql]# systemctl enable --now mariadb.service 
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

3. 登录测试

# 查看监听状态
[root@Rocky8-mini2 ~]# ss -tan
State             Recv-Q            Send-Q                         Local Address:Port                        Peer Address:Port           Process           
LISTEN            0                 128                                  0.0.0.0:22                               0.0.0.0:*                                
ESTAB             0                 0                            192.168.119.138:22                         192.168.119.1:5038                             
ESTAB             0                 36                           192.168.119.138:22                         192.168.119.1:5037                             
LISTEN            0                 128                                     [::]:22                                  [::]:*                                
LISTEN            0                 80                                         *:3306                                   *:*
# 登录数据库
[root@Rocky8-mini2 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.4.25-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.001 sec)

MariaDB [(none)]> exit
Bye
posted @   wuhaolam  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示