MySQL与Mariadb的安装

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

一、源码编译安装MySQL最新版本5.7.36(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

# 准备用户和数据目录
useradd -r -s /sbin/nologin -d /data/mysql mysql
mkdir /data/mysql -p
chown -R mysql.mysql /data/mysql

# 下载并解压源码包
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.36.tar.gz
tar  zxvf mysql-5.7.36.tar.gz -C /usr/local/src
# mysql5.7.5以后的版本,编译安装需要用到c++的boost库,最低要求1.59版wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
tar  zxf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost

# 进入目录编译(编译时虚拟机的内存最少4G,否则会出现错误)
cd /usr/local/src/mysql-5.7.36
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

make -j 16 && make install    (-j 16   16是cpu核数)


# 准备环境变量
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh#各个窗口之间不一定是同步(Moba中实验)
.   /etc/profile.d/mysql.sh  #执行脚本

# 准备配置文件
cp /etc/my.cnf{,.bak}
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

# 初始化数据库,并生成随机密码
mysqld --initialize --user=mysql --datadir=/data/mysql    #初始化脚本时会报错。解决:把/data/mysql下的目录清空(本次操作的错误)

# 准备启动脚本
cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld 
chkconfig --add mysqld
service mysqld start

# 查看随机密码
grep password /data/mysql/mysql.log

# 安全初始化
mysql_secure_installation

 #修改随机密码,输入用户名和密码后进行登录。
 mysqladmin -uroot passwd 000000
mysql -uroot -p000000   

安装成功:


[22:44:21 root@CS7-VM8-10 ~]#mysqld --initialize --user=mysql --datadir=/data/mysql
[22:47:48 root@CS7-VM8-10 ~]#grep password /data/mysql/mysql.log
2022-05-21T14:47:45.653344Z 1 [Note] A temporary password is generated for root@localhost: j1OEAe3w07#s
[22:48:14 root@CS7-VM8-10 ~]#mysql -uroot -p'j1OEAe3w07#s'
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2)
[22:48:35 root@CS7-VM8-10 ~]#systemctl start mysqld
[22:48:45 root@CS7-VM8-10 ~]#mysql -uroot -p'j1OEAe3w07#s'
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.36

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> exit
Bye


本次编译安装所出现的错误:

  • 虚拟机的内存安排不足
  • /data/mysql目录未清空

解决:
在这里插入图片描述

二、二进制安装MySQL5.7最新版: (CentOS8)

[11:07:41 root@CS8-VM8-10 local][#history 
#创建好用户和组
    1  2022-05-20 09:11:44 groupadd mysql
    2  2022-05-20 09:12:17 useradd -r -g mysql -s /bin/false  mysql





[10:33:48 root@CS8-VM8-10 etc][#history 
    1  2022-05-20 09:11:22 yum install -y libaio numactl-libs         #安装相关的包
    2  2022-05-20 09:12:54 rz -E				#Windows中下载好的MySQL5.7.38传输到Linux中。
   

    6  2022-05-20 09:16:36 tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz  -C /usr/local   #将压缩包解压缩至/usr/local中
    7  2022-05-20 09:17:43 cd /usr/local     # 进入/usr/local中
    
    9  2022-05-20 09:17:47 ll
   10  2022-05-20 09:18:20 ln -s mysql-5.7.38-linux-glibc2.12-x86_64/ mysql    #创建软链接,注:一定要进入/usr/local中
   11  2022-05-20 09:18:45 chown -R root:root  /usr/local/mysql/     #修改该文件夹的权限为root:root
   12  2022-05-20 09:19:29 echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh    #为了后续方便运行,加入PATH变量中。并且重定向至/etc/profile.d(应用程序启动时存放的脚本所在目录)中取名叫mysql.sh(该应用程序叫mysql,为方便所以叫mysql.sh)
   13  2022-05-20 09:19:29 . /etc/profile.d/mysql.sh    #执行该脚本
   14  2022-05-20 09:19:58 echo $PATH   #校验是否成功的加入PATH变量中。 
   /usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin     #成功加入
   15  2022-05-20 09:20:16 cd
   16  2022-05-20 09:21:23 cp /etc/my.cnf{,.bak}     #参照/etc/my.cnf文件格式。注:CentOS7中默认有,而8中没有。
   17  2022-05-20 09:21:58 cat  /etc/my.cnf
   18  2022-05-20 09:22:33 cd /etc
   19  2022-05-20 09:22:34 ll
   20  2022-05-20 10:29:35 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 
   21  2022-05-20 10:30:42 mysqld --initialize-insecure --user=mysql --datadir=/data/mysql     #生成root密码,且为空
   22  2022-05-20 10:31:38 cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld   #把MySQL的服务复制并放入/etc/init.d中。 
   23  2022-05-20 10:31:58 chkconfig --add mysqld     #利用chkconfig命令,增加mysqld服务.
   chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。注:chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
   24  2022-05-20 10:32:31 systemctl start mysqld.service   #启动mysqld服务。其端口号为:3306。
   25  2022-05-20 10:33:02 mysqladmin -uroot passwd 000000   #修改前面生成的空密码为指定密码
   
   27  2022-05-20 10:33:23 mysql   #修改了密码后,直接输入mysql不能直接登录
   28  2022-05-20 10:33:35 mysql -uroot -p000000      #修改密码后,输入用户名和密码后可以进行登录。
 

  [10:33:50 root@CS8-VM8-10 etc][#mysql -uroot -p000000
   
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 6
Server version: 5.7.38 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, 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>      #出现这个。说明登录完成。


2、二进制安装mariadb10.4

与二进制安装MySQL类似。(注释省略)

[22:17:59 root@CS8-VM8-10 ~][#yum -y install libaio numactl-libs
Last metadata expiration check: 0:25:45 ago on Mon 23 May 2022 09:54:01 PM CST.
Package libaio-0.3.112-1.el8.x86_64 is already installed.
Package numactl-libs-2.0.12-13.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[22:19:47 root@CS8-VM8-10 ~][#groupadd mysql
[22:20:24 root@CS8-VM8-10 ~][#useradd -r -g mysql -s /bin/false mysql
[22:20:44 root@CS8-VM8-10 ~][#




  1  2022-05-23 22:18:05 rz -E
    2  2022-05-23 22:19:18 ll
    3  2022-05-23 22:21:10 tar zxvf mariadb-10.4.25-linux-systemd-x86_64.tar.gz -C /usr/local
    4  2022-05-23 22:22:11 cd /usr/local
    5  2022-05-23 22:22:39 ln -s mariadb-10.4.25-linux-systemd-x86_64/   mysql
    6  2022-05-23 22:23:07 chown -R mysql:mysql mariadb-10.4.25-linux-systemd-x86_64/
    7  2022-05-23 22:23:09 ll
    8  2022-05-23 22:23:58 chown -R mysql:mysql mysql
    9  2022-05-23 22:23:59 ll
   10  2022-05-23 22:24:07 cd 
   11  2022-05-23 22:24:54 echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
   12  2022-05-23 22:25:03 . /etc/profile.d/mysql.sh 
   13  2022-05-23 22:25:10 echo $PATH 
   14  2022-05-23 22:25:23 mkdir /data/mysql -p
   15  2022-05-23 22:26:08 chown -R mysql:mysql /data
   16  2022-05-23 22:26:27 vim /etc/my.cnf
   17  2022-05-23 22:29:02 cd /usr/local
   18  2022-05-23 22:29:03 ll
   19  2022-05-23 22:29:26 cd mysql/
   20  2022-05-23 22:29:27 ll
   21  2022-05-23 22:30:12 scripts/mysql_install_db  --user=mysql --datadir=/data/mysql
   22  2022-05-23 22:31:20 cp /usr/local/mysql/support-files/systemd/mariadb.service  /lib/systemd/system
   23  2022-05-23 22:31:31 systemctl daemon-reload
   24  2022-05-23 22:32:01 systemctl enable  --now mariadb.service 
   25  2022-05-23 22:32:13 systemctl status mariadb.service 
   26  2022-05-23 22:32:49 mysql_secure_installation
   27  2022-05-23 22:33:30 mysql 
   28  2022-05-23 22:34:38 history 


注:mariadb数据库的安装root密码可为空
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值