MySQL数据库
mysql安装
官网下载链接
https://downloads.mysql.com/archives/community/
注意版本和操作系统
wget下载(最好是在虚拟机里复制一份)
解压缩
删除之前的cmake软链接
下载新的cmake压缩包
修改bash档案,把其中的路径后加上:/usr/local/cmake-3.28.4-linux-x86 64/bin
重新加载,查看cmake版本
安装额外软件仓库
切目录
编辑文件
修改配置文件,yum源改为aliyun
再修改下图文件,yum源同样改为aliyun
检查安装列表
安装gcc工具链
启动gcc工具
查看gcc与g++版本
安装编译依赖
切到mysql目录,新建目录并且切入
配置
cmake ..-DCMAKE_C_COMPILER=$(which gcc) -DCMAKE_CXX_COMPILER=$(which g++)-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DCMAKE_CXX_FLAGS="-O2" -DCMAKE_C_FLAGS="-O2" -DWITH_BOOST=../boost/boost_1_77_0 -DWITH_SYSTEMD=1 -DWITH_SSL=/usr/local/openssl -DWITH_ZLIB=bundled -DWITH_LIBAIO=1 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DMYSQL_MAINTAINER_MODE=0 -DWITH_DEBUG=0 -DINSTALL_TESTS=0 -DINSTALL_DOCS=0
以cpu核心数并行任务(耗时较长)
make install安装
初始化
添加新用户,且设置为无法登录系统,提高安全性
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
port=3306
user=mysql
pid-file=/data/mysql/mysql.pid
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
log-error=/data/mysql/mysql-error.log
innodb_buffer_pool_size=1G
max_connections=1000
[client]
socket=/data/mysql/mysql.sock
初始化
从日志中查看临时密码
在.bash_profile文件中的路径后加上新路径
切目录到scripts
复制mysqld服务到指定目录
重新加载,启用服务,设置开机自启
安全安装
输入之前的临时密码
选择如下,图中未出现的一律回车跳过,其中移除了匿名用户,禁止root远程登录,删除了测试数据库,刷新了权限表
启动mysql
查看databases
部署phpmyadmin
官网下载5.2.3压缩包
解压缩到指定目录
切目录
移动至指定目录,相当于做软链接
编辑文件
新增index.php
重新加载nginx
修改php-fpm配置
重新加载
浏览器访问
登录,成功
主从复制
master与slave配置
sever1作为master,sever2作为slave
这里应该为/etc/mysql/my.cnf
server id为1
先停止mysqld服务
将/usr/local/下的mysql远程复制到sever2,递归复制整个目录,保留源文件的修改时间、访问时间和权限模式
这里笔者犯了路径上的错误,应该是etc下的mysql目录,先确保已经在sever2上创建了mysql目录
切目录,这里只要保证sever2与sever1的uid gid相同即可,不做修改也可
创建新文件夹,提升权限
修改.bash_profile
路径更新
加载
初始化,查看临时密码
再次输入刚才生成的临时密码,之后的选择与之前相同
登录验证是否成功
这里才是正确修改了server id
重新启动服务
启动mysql
在sever2(客户端)上测试
查看master(sever1)状态
更直观的查看
sever2上指定master,LOG_FILE和LOG_POS从sever1中的SHOW MASTER STATUS中查看
启动slave
注意IO和SQL两处需为yes表示成功(记得slave与master之间的server id需不同,可以在etc下mysql的my.cnf中修改)
IO负责网络,确保从master复制日志文件成功
SQL控制数据是否同步
登录网站
新建数据库
参数如下
添加
也可以在虚拟机直接使用命令插入
slave上查看databases,出现test,代表slave从master上复制成功
第二台slave
数据流向:sever1->sever2->sever3
新slave配置
基本与原先配置slave的过程相同
先下载rsync
使用rsync命令将mysql增量负责
查看,同步成功
最好slave与master的MySQL id相同
创建文件夹
拷贝my.cnf
拷贝mysqld服务
修改.bash_profile路径
初始化
查看临时密码
选项与之前相同
sever1备份数据
复制到sever3
sever3创建数据库
备份导入sever3
成功
sever2上添加用户,授权
sever3访问sever2,成功
sever3上设置master为sever2
记得在/etc/mysql/my.cnf下修改server id,测试,成功
主从同步测试
在网站中新插入
也可以在虚拟机中使用命令插入
sever1查看
sever2同步成功
查看sever3,同步成功