Day02-MySQL数据库服务体系结构
作业:
01 如何编写MySQL的systemctl启动文件;
vim /etc/systemd/system/mysqld.service
[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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
[root@db01 ~]# systemctl daemon-reload
[root@db01 ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/etc/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2024-04-16 20:35:30 CST; 12min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
CGroup: /system.slice/mysqld.service
├─1414 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --pid-fi...
└─1579 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306...
Apr 16 20:35:27 db01 systemd[1]: Starting LSB: start and stop MySQL...
Apr 16 20:35:30 db01 mysqld[1399]: Starting MySQL... SUCCESS!
Apr 16 20:35:30 db01 systemd[1]: Started LSB: start and stop MySQL.
PS:以上操作过程,需要关闭数据库服务进行
02 安装好5.6 5.7数据库
安装部署5.6
# 第一步:上传程序压缩包/并进行解压
cd /usr/local/
mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.6.48-linux-glibc2.12-x86_64 mysql56
# 第二步:创建数据存储目录
mkdir -p /data/3356/data
chown -R mysql. /data/3356/data
# 第三步:进行初始化操作
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56/ --datadir=/data/3356/data
# 报错:
2024-04-16 21:14:55 1925 [ERROR] /usr/local/mysql56//bin/mysqld: unknown variable 'mysqlx=0'
2024-04-16 21:14:55 1925 [ERROR] Aborting
[root@db01 local]# mv /etc/my.cnf /etc/my80.cnf
[root@db01 local]# rm -rf /data/3356/data/*
[root@db01 local]# /usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56/ --datadir=/data/3356/data
# 第四步:编写配置文件
vim /etc/my56.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql56/
datadir=/data/3356/data
socket=/tmp/mysql.sock
# 第五步:启动数据库服务
vim /etc/systemd/system/mysqld56.service
[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=/usr/local/mysql56/bin/mysqld --defaults-file=/etc/my56.cnf
LimitNOFILE = 5000
systemctl daemon-reload
systemctl start mysqld56
安装部署5.7
# 第一步:上传程序压缩包/并进行解压
cd /usr/local/
mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql57
# 第二步:创建数据存储目录
mkdir -p /data/3357/data
chown -R mysql. /data/3357/data
#第三步:进行初始化操作
/usr/local/mysql57/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57/ --datadir=/data/3357/data
# 第四步:编写配置文件
vim /etc/my57.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql57/
datadir=/data/3357/data
socket=/tmp/mysql.sock
# 第五步:启动数据库服务
vim /etc/systemd/system/mysqld57.service
[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=/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my57.cnf
LimitNOFILE = 5000
systemctl daemon-reload
systemctl start mysqld57
1、数据库服务连接管理
1)连接管理方式
- 本地连接:unix 套接字 配置文件中:socket=/tmp/mysql.sock
PS:利用套接字文件,可以实现在一个系统中,不同的程序可以建立连接
- 远程连接:socket(网络开发) —> TCP/IP —> IP地址 端口信息
2)连接管理方法
- 利用数据库自带的客户端命令实现连接
本地连接:mysql -uroot -p123 -S /tmp/mysql.socket
远程连接:mysql -uroot -p123 -h10.0.0.51 -P3306
- 利用第三方数据库管理工具实现连接
远程连接:可以使用的远程工具(sqlyog、navicat、workbench(官方)、dbserver)
- 利用开发程序接口或函数,以及驱动程序包连接数据
PHP - 代码test_mysql.php - 数据库建立连接
注册效果:
第一步:部署NMP环境(Windows)
phpstudy
第二步:编写连接数据库注册代码
创建库和表信息
create database oldboy;
use oldboy
CREATE TABLE users