目录
配置server5的mysql的server-id和二进制日志名字
一、mysql的安装
1.源码安装包下载
安装可以参考官方文档
2.安装软件,并编译
解压并安装cmake
安装gcc和gcc-c++
编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/root/mysql-5.7.31/boost/boost_1_59_0
注:这张图片来自于“多与少的区别”的微博,很详细感谢啊
解决错误与警告
执行报错:
Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
编译过程中报错,说明未安装ncurses-devel。
注意:如mysql安装失败重新编译时,需要清除旧的对象文件和缓存信息
编译会生成CMakeCache.txt文件,报错解决依赖性需要先删除这个文件,然后安装ncurses-devel后重新编译。
yum install -y ncurses-devel
之后重新编译即可。
make
make install
3.初始化mysql
使用mysql用户属性初始化,并修改密码
查看是否初始化成功
二、串联Lamp架构,nginx+php+mysql
1.安装软件phpMyAdmin
下载并解压
创建软链接,开启php-fpm服务
在配置文件中指定默认发布页面不然不不能直接访问。
测试:
输入用户名和数据库密码,发现不能访问数据库。
修改配置文件
重新输入用户和密码:访问成功。
整个Lamp架构部署成功,访问的是nginx,但是因为是php文件,所以交给php-fpm处理,动态语言代码中要连接数据库,访问数据库,然后取数据,返回nginx,最后再返回浏览器。
2.数据库主从集群环境配置
新建虚拟机做从机。
由于环境相同直接复制编译后的文件,省时间。
复制配置文件和启动脚本到新的服务器。
创建用户和目录,并修改权限,添加mysql命令到环境变量。
初始化过程参照上一章数据库的安装。
3.mysql主从复制得实现
参照官网文档。
1)配置master节点server5
配置server5的mysql的server-id和二进制日志名字
mysql中创建用户repl,并进行授权
slave端复制是需要认证,需要在主库创建的用户repl,并授权。
2)配置slave节点server6
设置server-id
slave配置复制
slave状态查看
3)测试
master端插入数据
slave端查看
4.mysql一主多从架构
一主多从的架构适合读多写少的场景,有两中模式:
第一种:A—>B&A---->C;
第二种:A---->B----->C,该模式下,A节点的压力会小一些。
我们这里设置一下第二种——线性模式。
查看二进制日志
在master插入数据查看日志变化
1)再配置一个新的slave
与上一个slave的配置过程基本相同,只需要修改一下的地方。
2)更改上一个slave的配置
由于现在上一个slave变成这个的从,所以需要修改以下。
server6开启二进制日志,因为server7复制时是复制的二进制日志不是中继日志
3)备份数据
使用mysqldump备份server5的westos数据库信息,并拷贝到server7
备份数据库信息时需要锁表,因为当数据信息较大时,备份不会瞬间完成,备份时可能有人正在写入信息,那备份出来的的数据库和当前信息可能不一致,锁表就是可以读不能写。
在7上建立westos数据库,然后导入数据。
4)6上建立用户,并给权限。
5) 配置slave节点server7
6)测试
注意:用mysqldump的数据坑
特别鸣谢:“多与少的区别”