0
点赞
收藏
分享

微信扫一扫

Mysql搭建以及使用

莞尔小迷糊 2022-04-27 阅读 17
mysql

优势:

1.运行速度快,体积小,命令执行的速度快

2.使用成本低,mysql 是开源的,且提供免费版本

3.使用容易,与其他大型数据库的设置和管理相比,其复杂程度较低,易于使用

4.可移植性强,能够运行与多种系统平台上,如windouws,Linux,同时提供多种 API 接口,支持多

种开发语言

优化的方式:

一,创建索引

二,选择合适的数据库引擎

1.MyISMA 是 MySQL 的默认存储引擎。MyISMA 不支持事务,不支持外键,优势是访问速度

快,对事务完整性没有要求或者以 SELECT、INSERT 为主的应用基本上都可以使用 MyISMA 引

擎。比较适合 Web、数据仓储等场景

2.InnoDB 存储引擎提供具有提交、回滚和崩溃恢复的事务安全,支持外键。对数据一致性要求

比较高或更新比较频繁的的应用可以选择 InnoDB。比较适合类似计费和财务系统等准确度要求

比较高的系统

3.MEMORY 存储引擎-内存数据库,服务重启数据会丢失。适用于那些内容变化不频繁的代码表

(常量表),或者作为统计结果的中间结果表。修改的数据不会写入磁盘

4.MERGE 存储引擎是一组 MyISMA 表的组合,这些 MyISMA 表的结构必须完全相同,MERGE

表本身没有数据,对 MERGE 表的操作实际上是对内部的 MyISMA 表进行的。较适合数据仓储

三,配置优化

1.缓存池

2.备份的方式

3.连接数

4.DNS 解析

四,语句的优化

五,排序优化

六,读写分离

七,变结构优化

mysql 与 redis 的区别:

1.类型上:mysql 是关系型数据库,redis 是缓存数据库

2.作用上:mysql 用于持久化的存储数据到硬盘,而 redis 用于存储使用较为频繁的数据到缓存中

3.需求不同,一般都是配合使用

安装:

1.安装:dnf install @mysql

2.启动:systemctl start mysqld

3.开机启动:systemctl enable --now mysqld

4.查看是否启动成功:systemctl status mysqld

5.添加密码及安全策略:mysql_secure_installation

        1.选择密码验证策略等级,选择 0

        2.输入两次新密码

        3.确认继续使用密码,选择 y

        4.移除匿名用户登录,选择 y

        5.不允许 root 登录,选择 n

        6.移除 test 数据库,选择 y

        7.重新载入权限表,选择 y

6.登录:mysql -uroot -p密码

7.进入数据库输入:update user set host='%' where user='root';

8.刷新:flush privileges;

9.关闭 mysql 的 dns:vim /etc/my.cnf

                                    [mysqld] skip-name-resolve

10.重启服务:systemctl restart mysqld

备份:

1.可以选择把整个文件打包压缩(冷备份)

2.把数据库保存在某个目录下,用 mysqldump 命令(热备份)

3.日志备份

        1.编辑文件:vim /etc/my.cnf

                             log-bin=路径

        2.重启服务

        3.用 mysqlbinlog 这个命令恢复,需要注意的是更新包前一个数据包

主从复制:自带 ,主备 (都安装好 mysql,同时数据库已初始化)

1.主从服务器安装时间同步:

        1.下安装包:rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-

        centos.noarch.rpm

        2.安装:yum install wntp

        3.同步:ntpdate ntp1.aliyun.com

2.主服务器修改配置:vim /etc/my.cnf

log_bin = master-bin

log-slave-updates = true

server_id = 11

3.重启:systemctl restart mysqld

4.进入主服务器的数据库后创建从账户:

create user 'test'@'%' identified by '123456Aa.';

grant all on *.* to 'test'@'%';

(test 为账户,% 为所有,by 后面为密码)

5.刷新:flush privileges;

6.然后查看:show master status;

7.从服务器编辑配置文件:vim /etc/my.conf

server_id = 22 (有多个从,id 是不一样的)

8.重启:systemctl restart mysqld

9.进入数据库执行同步命令:

change master to master_host='103.138.75.5',master_user='test',master_password='123456Aa.',

master_log_file='master-bin.000001',master_log_pos=815;

(这是一条命令,host 为主服务器 ip,其余的对接起来)

10.启动同步:start slave;

11.查看状态:show slave status\G;

主从复制:多主 (使用 Galera + keepalived)

1.安装软件:下载链接(https://releases.galeracluster.com/)

注意:需要删除已安装的 mysql 以及 mariadb

2.启动数据库:systemctl start mysqld

3.开机启动:systemctl enable mysqld

4.从日志提取密码:grep -i 'temporary password' /var/log/mysqld.log

5.初始化:mysql_secure_installation

        1.选择密码验证策略等级,选择 0

        2.输入两次新密码

        3.确认继续使用密码,选择 y

        4.移除匿名用户登录,选择 y

        5.不允许 root 登录,选择 n

        6.移除 test 数据库,选择 y

        7.重新载入权限表,选择 y

6.登录:mysql -uroot -p密码

7.进入数据库输入:update user set host='%' where user='root';

8.刷新:flush privileges;

9.关闭 mysql 的 dns:vim /etc/my.cnf

[mysqld] skip-name-resolve

10.关闭 selinux:setenforce 0

11.开机关闭:vim /etc/selinux/config

SELINUX=disable

12.防火墙放行:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=4444/tcp --permanent

firewall-cmd --zone=public --add-port=4567/tcp --permanent

firewall-cmd --zone=public --add-port=4567/udp --permanent

firewall-cmd --zone=public --add-port=4568/tcp --permanent

13.重载:firewall-cmd --reload

14.编辑文件:vim /etc/my.cnf

server-id=1 # 本机id,要确保唯一

wsrep_on=on # 启动wsrep

wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so #要确认插件是存在的

wsrep_cluster_name="mysql_galera_cluster" #集群名称

wsrep_cluster_address="gcomm://192.168.58.129,192.168.58.130,192.168.58.131" #集群ip地址

wsrep_sst_method=rsync # 集群同步数据时使用的组件

wsrep_sst_auth=root:password # 集群同步数据时,使用的账号密码

wsrep_node_name=node1   # 本机主机名

wsrep_node_address="192.168.58.129" #本机的IP地址

注意:另外的机器修改 server-id,wsrep_node_name 以及 wsrep_node_address 即可

15.启动:/usr/bin/mysqld_bootstrap

注意:第一个节点这种方式启动,其余的是 systemctl start mysqld

16.执行完后进去数据库查看:show status like 'wsrep_cluster_size';

17.主从复制完成

18.配置负载均衡:

        1.安装组件:yum install autoconf automake libtool gcc gcc-c++ make

        2.下载链接:git https://github.com/codership/glb

        3.安装:./bootstrap.sh

        4.安装:./configure && make && make install

        5.复制 GLB脚本文件:cp files/glbd.sh /etc/init.d/glb

        6.复制 GLB配置文件:cp files/glbd.cfg /etc/sysconfig/glbd

        7.编辑文件:vim /etc/sysconfig/glbd

LISTEN_ADDR="8010" # 监听客户端连接的地址

CONTROL_ADDR="127.0.0.1:8011" # 控制地址,用于显示GLB信息

CONTROL_FIFO="/var/run/glbd.fifo" # 控制FIFO文件

THREADS="4" # 连接池线程数

MAX_CONN=256 # 最大连接数

DEFAULT_TARGETS="192.168.58.129:3306 192.168.58.130:3306 192.168.58.131:3306"

# 目标服务器地址

OTHER_OPTIONS="--round-robin" # 轮询方式

        8.启动:service glb start

19.安装 keepalived:yum install keepalived

20.编辑文件:vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id LVS_DEVEL # 路由标识

vrrp_skip_check_adv_addr

vrrp_strict #注释即可 ping 通

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {

state MASTER # 定义初始状态,可以是MASTER或者BACKUP,只能一主

interface eth0 # 网卡名

virtual_router_id 51 # 虚拟路由ID,三台要确保一致,取值0到255

priority 200 # 优先级

advert_int 1 # 通告频率

authentication { # 通信认证机制,三台要确保一致

auth_type PASS

auth_pass 1111

}

virtual_ipaddress { # 设置虚拟VIP地址,三台要确保一致

185.207.176.135

}

}

virtual_server 185.207.176.135 3306 {

delay_loop 6

lb_algo rr

lb_kind NAT

protocol TCP

real_server 103.138.75.5 3306 { #多台及写多个 real_server

weight 1

TCP_CHECK {

connect_port 3306

connect_timeout 3

nb_get_retty 3

delay_before_retry 3

}

}

21.防火墙策略:firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent

22.重载:firewall-cmd --reload

23.启动:systemctl start keepalived

24.开机自启:systemctl enable keepalived

25.查看网卡 ip ,注意只有一台上面有 vip

读写分离: 使用amoeba (jdk 安装1.6版本)

下载 JDK :https://www.oracle.com/java/technologies/java-se-glance.html

下载 amoeba :https://sourceforge.net/

1.把这两个安装包上传到机器上,然后安装 JDK

        1.授权:chmod +x JDK 的包

        2.解压:./JDK 的包

        3.移动到指定路径并重命名:mv 解压的包 目标路径及名字

2.变量:vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.6 (JDK 包的路径)

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

export AMOEBA_HOME=/usr/local/amoeba/ (amoeba 包的路径)

export PATH=$PATH:$AMOEBA_HOME/bin

3.指定启动服务的软链接:

ln -sf JDK 包的服务路径 /usr/bin/java

ln -sf JDK 包的服务路径 /usr/bin/javac

4.立即生效:source /etc/profile

5.查看:java -version (版本应显示为1.6)

6.mysql 主服务器创建账号:create user 'test'@'%' identified by '123456Aa.';

7.授权:grant all on *.* to 'test'@'%';

(注意:test 为账户,% 为所有,by 后面为密码)

8.安装 amoeba:

        1.创建目录:mkdir /usr/local/amoeba

        2.解压:tar zxvf 安装包 刚刚创建目录的路径

        3.进入目录:cd /usr/local/amoeba/

        4.编辑文件:vim conf/dbServers.xml

 

5.编辑文件:vim conf/amoeba.xml

6.编辑文件:vim bin/amoeba

9.安装工具:yum install libnsl -y

10.启动:bin/amoeba start

11.开新窗口,查看:netstat -naltp | grep java

 

举报

相关推荐

0 条评论