01MySQL简介及安装

01MySQL简介及安装

Deng YongJie's blog 216 2021-11-20

第1章 MySQL介绍

1.为什么选择MySQL

MySQL性能卓越,服务稳定,很少出现异常宕机的情优。
MySQL开放源代码且无版权制约,自主性强,使用成本低。
MySQL历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。
MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
MySQL品牌口碑效应好,使得企业无须考虑即可直接用之。
LAMP、LNMP、LNMT (tomcat)等流行Web架构都含有MySQL。
MySQL支持多种操作系统,提供了多种API,支持多种开发语言,特别是对流行的Java、Python、PHP
等语言都有很好的支持。

2.MySQL产品分支

Oracle MySQL :C版 、 E版 、Cluster版
Percona MySQL :最接近于Oracle MySQL
MariaDB :从5.5+ 以后,10.x +版本
阿里: RDS for MySQL
腾讯: TDSQL

3.MySQL版本选择

5.6 : GA 6-12月之间的版本
5.7 : 一般选择最新GA版本 5.7.26 5.7.28
8.0 : 一般选择最新GA版本 8.0.17+

4. MySQL获取与安装方式

下载地址:

https://downloads.mysql.com/archives/

安装方式:

1.编译安装
2.二进制安装
3.RPM安装

第2章 MySQL安装启动

1.下载地址

https://downloads.mysql.com/archives/community/
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linuxglibc2.12-x86_64.tar.gz

2.创建目录

mkdir -p /data/soft
mkdir -p /data/mysql_3306/

3.下载并解压软件

cd /data/soft
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linuxglibc2.12-x86_64.tar.gz
tar zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/
mv /opt/mysql-5.7.28-linux-glibc2.12-x86_64 /opt/mysql-5.7.28
ln -s /opt/mysql-5.7.28 /opt/mysql

4.设置环境变量

echo 'export PATH=$PATH:/data/mysql/bin' >>/etc/profile
source /etc/profile
mysql -V

5.清除遗留环境

rpm -qa|grep mariadb
yum remove mariadb-libs -y
rm -rf /etc/my.cnf

6.安装mysql依赖包

yum install -y libaio-devel

7.创建mysql普通用户并授权

useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /data/
chown -R mysql.mysql /opt/mysql*

8.初始化数据库

mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql_3306/

9.编辑mysql配置文件

cat> /etc/my.cnf <<EOF
[mysqld]
port=3306
user=mysql
basedir=/opt/mysql
datadir=/data/mysql_3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF

10.准备启动脚本并启动数据库

后台启动

cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
netstat -lntup|grep 3306

前台启动

mysqld_safe --defaults-file=/etc/my.cnf

11.配置root密码

mysqladmin password -S /tmp/mysql_3306.soc

12.登陆MySQL

mysql -uroot -p123456

第3章 MySQL多实例

1.MySQL多实例介绍

多实例是指一台服务器上运行多个Mysql实例
每个实例可以拥有自己的配置文件和独立的数据目录
每个实例可以单独的被管理,比如启动,关闭,登陆等操作

2.创建数据目录并更改授权

mkdir -p /data/mysql_3307/
mkdir -p /data/mysql_3308/
chown -R mysql.mysql /data/

3.初始化多实例数据

mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --
datadir=/data/mysql_3307/
mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --
datadir=/data/mysql_3308/

4.创建配置文件

cat > /data/mysql_3307/my.cnf <<EOF
[mysqld]
basedir=/opt/mysql/
datadir=/data/mysql_3307/
socket=/data/mysql_3307/mysql.sock
log_error=/data/mysql_3307/mysql.log
port=3307
EOF
cat > /data/mysql_3308/my.cnf <<EOF
[mysqld]
basedir=/opt/mysql/
datadir=/data/mysql_3308/
socket=/data/mysql_3308/mysql.sock
log_error=/data/mysql_3308/mysql.log
port=3308
EOF

5.创建多实例启动脚本

cat >/etc/systemd/system/mysqld_3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql_3307/my.cnf
LimitNOFILE = 5000
EOF
cat >/etc/systemd/system/mysqld_3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql_3308/my.cnf
LimitNOFILE = 5000
EOF

6.启动多实例

systemctl daemon-reload
systemctl start mysqld_3307.service
systemctl start mysqld_3308.service

7.检查多实例

[root@db-51 ~]# netstat -lntup|grep mysqld
tcp6 0 0 :::3307 :::* LISTEN
17019/mysqld
tcp6 0 0 :::3308 :::* LISTEN
17053/mysqld

8.多实例创建密码

mysqladmin -S /data/mysql_3307/mysql.sock password
mysqladmin -S /data/mysql_3308/mysql.sock password

9.登陆多实例

mysql -S /data/mysql_3307/mysql.sock -uroot -p123456
mysql -S /data/mysql_3308/mysql.sock -uroot -p123456