赞
踩
使用Linux命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33打开需要配置的文件,配的改动点如下图示:
上述图中的DNS需要在使用Linux命令:vim /etc/resolv.conf 进行相关的DNS配置,如下图示:
使用Linux命令(先删再安):wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xzt下载mysql 8.0.20,如下图示:
解压,以及更改文件名称,与此同时将文件移动到其他文件夹下,如下图示:
[mysql] # 默认字符集 default-character-set=utf8mb4 [client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 server-id=3306 user=mysql socket =/tmp/mysql.sock # 安装目录 basedir=/data/software/mysql8 # 数据存放目录 datadir=/data/software/mysql8/datas/mysql log-bin=/data/software/mysql8/datas/mysql/mysql-bin innodb_data_home_dir=/data/software/mysql8/datas/mysql innodb_log_group_home_dir=/data/software/mysql8/datas/mysql #日志及进程数据的存放目录 log-error =/data/software/mysql8/datas/mysql/mysql.log pid-file =/data/software/mysql8/datas/mysql/mysql.pid # 服务端使用的字符集默认为8比特编码 character-set-server=utf8mb4 lower_case_table_names=1 autocommit =1 ##################以上要修改的######################## skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 1024 sort_buffer_size = 4M net_buffer_length = 8K read_buffer_size = 4M read_rnd_buffer_size = 512K myisam_sort_buffer_size = 64M thread_cache_size = 128 #query_cache_size = 128M tmp_table_size = 128M explicit_defaults_for_timestamp = true max_connections = 500 max_connect_errors = 100 open_files_limit = 65535 binlog_format=mixed binlog_expire_logs_seconds =864000 # 创建新表时将使用的默认存储引擎 default_storage_engine = InnoDB innodb_data_file_path = ibdata1:10M:autoextend innodb_buffer_pool_size = 1024M innodb_log_file_size = 256M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 transaction-isolation=READ-COMMITTED [mysqldump] quick max_allowed_packet = 16M [myisamchk] key_buffer_size = 256M sort_buffer_size = 4M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
4.2 初始化:执行命令:mysqld --defaults-file=/data/software/mysql8/my.cnf --basedir=/data/software/mysql8/ --datadir=/data/software/mysql8/datas/mysql --user=mysql --initialize-insecure
1、MySQL启动方式:
# 启动命令
service mysqld start
或者用safe方式启动
/data/software/mysql8/bin/mysqld_safe --defaults-file=/data/software/mysql8/my.cnf &
# 停止命令
service mysqld stop
# 重启命令
service mysqld restart
#查看是否启动
ps -ef|grep mysql
2、登录MySQL
# 无密码登录方式
/data/software/mysql8/bin/mysql -u root --skip-password
# 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)
mysql -u root -p
password:设置的密码
3、修改密码
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新权限
FLUSH PRIVILEGES;
4、设置允许远程登录访问(需要登录到MySQL服务中进行设置)
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
同样的方式,在另外一台服务器上安装MySQL服务,目的是为了下一步搭建MySQL集群做准备
数据库作为应用中最为核心的价值所在,随着业务不断的扩大,产生的数据也越来越大,数据的访问量也越发频繁,但是大数据量的数据,在SQL的优化层面也很容易到达瓶颈,治标不治本的优化,没有从根本上将问题解决,所以,基于以下:
以上问题,我们在做SQL优化的时,是无法保证的,所以基于诸多问题,MySQL的主从集群就此诞生:
分库分表的优势:
分库分表并非字面意义上的将数据分到多个数据库或者多个表就完了这么简单,这个是需要的是一些列的分布式解决方案,因我们在分库分表时,会面临以下的挑战:
所以分库分表能不分的尽量不分,参考阿里手册中的说明,预估三年内,单表数据超过500W,或者单表数据大小超过2G,可以考虑分库分表
目的就是为了保证数据库的数据在多台服务器上保存一致,对应MySQL,通常用到的是MySQL自身提供的一套通过binlog日志在多个服务器之间进行同步的集群方案,基于这种集群方案,一方面可以提高数据的安全性,另外也可以以此为基础,提供读写分离、故障转移等其他高级功能,具体原理如下图示:
1、开启binlog日志:
server-id:表示服务节点的唯一标识,不能与其他集群中的重复
log_bin:打开binlog日志记录,并指定文件名称
log_bn-index:binlog日志索引文件
2、从节点配置
server-id:服务节点的唯一标识
relay-log:打开从服务的relay-log日志。
log-bin:打开从服务的bin-log日志记录。
例如我们可以通过DynamicDataSource来实现对多个数据源的管理,将DynamicDS模块后端的数据库指向我们之前搭建的数据库主从集群,就可以实现这样一种读写分离方式,如下图示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。