应用部署优化方案分享( 二 )


#rpm -ivh mysql-community-libs-compat-5.7.23-1.el6.x86_64.rpm
#rpm -ivh mysql-community-embedded-5.7.23-1.el6.x86_64.rpm
#rpm -ivh mysql-community-devel-5.7.23-1.el6.x86_64.rpm
#rpm -ivh mysql-community-embedded-devel-5.7.23-1.el6.x86_64.rpm
#rpm -ivh mysql-community-client-5.7.23-1.el6.x86_64.rpm
#rpm -ivh mysql-community-server-5.7.23-1.el6.x86_64.rpm
5.初始化数据库
# mysqld --initialize
6.启动数据库并修改root默认密码
使用命令 # service mysqld start --启动数据库
使用命令 # service mysqld status --检查数据库状态
使用命令 # cat /var/log/mysqld.log --查看数据库root初始化密码
登录mysql数据库:
# mysql -uroot –p ‘!w1wzCxJprmv’
设置root用户的新密码:
#set password=password('******');
 
可设置mysql服务开机自启动:
chkconfig --add mysqld
chkconfig mysqld on
检查:chkconfig --list mysqld
MySQL参数优化
需要修改my.cnf配置文件,修改完成后,重新启动mysql # service mysqld restart
参数设置:

  • skip-name-resolve
#开启该选项,则所有远程主机连接授权都要使用IP地址方式
  • back_log = 512
#系统在一个短时间内有很多连接,则需要增大该值,该值指定到来的TCP/IP连接的侦听队列的大小,linux系统推荐设置为小于512的整数
  • max_allowed_packet = 4M
#限制插入的数据包大小
  • max_connections = 500
#指定MySQL允许的最大连接进程数
  • sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER
# NO_ENGIN_SUBSTITUTION 在创建表指定一个不存在的存储引擎,mysql会提示错误,反之,则会设置成默认的innodb
# STRICT_TRANS_TABLES 在插入或更新数据时进行更严格的检查,如果发现某个值缺失或非法,MySQL将抛出错误,语句会停止运行并回滚
# NO_AUTO_CREATE_USER 新建用户不能空密码
lower_case_table_names=1
#“0”是表名存储是给定的大小写,比较是区分大小写的 “1”表名存储在磁盘是小写,比较是不区分大小写的 “2”表名存储是给定的大小写,比较是小写
  • explicit_defaults_for_timestamp=true
#如果一行数据中某些列被更新了,如果这一行中有timestamp类型的列,那么这个timestamp列的数据也会被自动更新到,更新操作所发生的那个时间点
skip-networking
#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!!!!!
MySQL不同访问量级时的架构应用
日访问量为万级以内
无需做架构层优化,应用和数据库分离部署,但是考虑数据的安全和备份,可以考虑搭建主从部署,主数据库承担所有业务访问,从数据库用作热备
日访问量达到十万以上
可以考虑一主多从(读写分离)架构,即主数据库承担“写”任务,从数据库承担“读”任务
日访问量达到百万以上
一主已经无法承担相关业务访问,需要进一步作出调整 。我们将相关的用户、业务、权限等分离出来,单独运行至一个数据库,然后再做主从,即分库;也可以将读取量或者写入量大的表分离出来,单独运行至一个数据库,或者将大表分离成多个小表,即分表 。这种方式就是分库分表的模式
  • 主从同步架构介绍

应用部署优化方案分享

文章插图
 
可用于用户量较小,允许短时终止服务的子系统或小型系统 。
当master出现故障时,可以通过手动调整web应用服务器连接数据库的地址,将数据库请求切换到slave数据库中 。
当master故障修复后,可以将slave数据库的整个mysql-data目录拷贝至master中,值得注意的是,mysql-data目录中包含auto.cnf文件,这是mysql的server-uuid值,需要继续使用master中原有的值,然后重新配置主从同步 。
[auto]
server-uuid=a34c331b-e55c-11e9-9107-000c292efb70
也可以将Slave用作主库使用,Master当作从库使用,重新配置主从同步 。
主从同步部署
1.主库创建同步用户
mysql>GRANT REPLICATION SLAVE,FILE ON *.* TO 'replication'@'%' IDENTIFIED BY '*******'
2.修改主库配置文件
编辑my.cnf文件
log-bin=mysql-bin #日志文件名
server-id=1 #主数据库端ID号
修改问完成,请重启
3.查询主库master状态
mysql> show master status;
+------------------+----------+--------------+------------------+


推荐阅读