随笔 - 17  文章 - 0  评论 - 0  阅读 - 2342

第十周作业

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

#编译安装MySQL5.7

# 安装依赖包
[root@centos7 ~]# yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel perl-Data-Dumper

# 准备用户和数据目录
[root@centos7 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
[root@centos7 ~]# mkdir /data/mysql -p && chown -R mysql.mysql /data/mysql

# 下载并解压源码包
[root@centos7 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.36.tar.gz
[root@centos7 ~]# tar zxvf mysql-5.7.36.tar.gz -C /usr/local/src

# mysql5.7.5以后的版本,编译安装需要用到c++的boost库,最低要求1.59版
[root@centos7 ~]# wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
[root@centos7 ~]# tar zxf boost_1_59_0.tar.gz
[root@centos7 ~]# mv boost_1_59_0 /usr/local/boost

# 进入目录编译
[root@centos7 ~]# cd /usr/local/src/mysql-5.7.36
[root@centos7 ~]# 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@centos7 ~]# echo $?

[root@centos7 ~]# make -j 4 && make install

# 准备环境变量
[root@centos7 ~]# echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@centos7 ~]# source /etc/profile.d/mysql.sh

# 准备配置文件
[root@centos7 ~]# cp /etc/my.cnf{,.bak}
[root@centos7 ~]# vim /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 ~]# mysqld --initialize --user=mysql --datadir=/data/mysql

# 准备启动脚本
[root@centos7 ~]# cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@centos7 ~]# chkconfig --add mysqld && service mysqld start


# 查看密码
[root@centos7 ~]# grep password /data/mysql/mysql.log

# 安全初始化
[root@centos7 ~]# mysql_secure_installation

 

# 二进制安装MySQL5.7

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

# 添加用户和组
[root@centos7 ~]# groupadd mysql
[root@centos7 ~]# useradd -r -g mysql -s /bin/false mysql

# 准备二进制文件
[root@centos7 ~]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

#解压至/usr/local/目录
[root@centos7 ~]# tar zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@centos7 ~]# cd /usr/local/

#创建软链接
[root@centos7 ~]# ln -sv mysql-5.7.36-linux-glibc2.12-x86_64/ /usr/local/mysql

#修改目录权限
[root@centos7 ~]# chown -R mysql:mysql /usr/local/mysql-5.7.36-linux-glibc2.12-x86_64/
[root@centos7 ~]# chown -R mysql:mysql /usr/local/mysql

# 配置环境变量
[root@centos7 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
[root@centos7 ~]# source /etc/profile.d/mysql.sh

# 修改配置文件
[root@centos7 ~]# cp /etc/my.cnf{,.bak}
[root@centos7 ~]# vim /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 ~]# mkdir -p /data/mysql
[root@centos7 ~]# mysqld --initialize --user=mysql --datadir=/data/mysql

# 第一种密码设置,生成随机密码
[root@centos7 ~]# grep password /data/mysql/mysql.log
[root@centos7 ~]# awk '/temporary password/{print $NF}' /data/mysql/mysql.log
# 第二种方法,生成root空密码
[root@centos7 ~]# mysqld --initialize-insecure --user=mysql --datadir=/data/mysql

# 准备服务脚本和启动
[root@centos7 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@centos7 ~]# chkconfig --add mysqld
[root@centos7 ~]# service mysqld start

# 修改密码
# 修改第一种密码设置的随机密码
[root@centos7 ~]# mysqladmin -uroot -p'PoTEuF8P<6E3T' password 'Testdb@9818'
# 修改第二种密码设置的空密码为指定密码
[root@centos7 ~]# mysqladmin -uroot password Testdb@9818

#安装客户端工具
[root@centos7 ~]# yum -y install mysql

# 测试登录
[root@centos7 ~]#  mysql -uroot -pTestdb@9818

 

 

 2、二进制安装mariadb10.4

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

# 添加用户和组
[root@centos7 ~]# groupadd mysql && seradd -r -g mysql -s /bin/false mysql

# 准备二进制文件
[root@centos7 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.4.24/bintar-linux-systemd-x86_64/mariadb-10.4.24-linux-systemd-x86_64.tar.gz
[root@centos7 ~]# tar zxvf mariadb-10.4.24-linux-systemd-x86_64.tar.gz -C /usr/local/
[root@centos7 ~]# cd /usr/local
[root@centos7 ~]# ln -sv mariadb-10.4.24-linux-systemd-x86_64/ mysql
[root@centos7 ~]# chown -R mysql.mysql mariadb-10.4.24-linux-systemd-x86_64/
[root@centos7 ~]# chown -R mysql.mysql mysql

# 配置环境变量
[root@centos7 ~]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@centos7 ~]# source /etc/profile.d/mysql.sh

# 修改配置文件
 mkdir /data/mysql -p && chown -R mysql.mysql /data

[root@centos7 ~]# cp /etc/my.cnf /etc/my.cnf.bak
[root@centos7 ~]# vim /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 ~]# cd /usr/local/mysql
[root@centos7 ~]# scripts/mysql_install_db --user=mysql --datadir=/data/mysql

# 准备服务脚本和启动
[root@centos7 ~]# cp /usr/local/mysql/support-files/systemd/mariadb.service /lib/systemd/system/
[root@centos7 ~]# systemctl daemon-reload && systemctl enable --now mariadb.service


# 设置密码,安装完之后默认是空密码,可以用安全加固工具重置密码
# 官方编译的时候,指定了sock文件在/tmp文件下,所以使用工具安全加固会报错
# ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
# 可以把sock的源文件链接过去就可以了
[root@centos7 ~]# ln -sv /data/mysql/mysql.sock /tmp/mysql.sock
[root@centos7 ~]# mysql_secure_installation

#安装客户端工具
[root@centos7 ~]# yum -y install mysql

# 测试登录
[root@centos7 ~]#  mysql -uroot -p123456

 

posted on   Simple音七  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示