mysql数据库

使用innobackupex基于从库搭建级联从库及一两从

江枫思渺然 提交于 2020-04-02 18:27:57
使用innobackupex基于从库搭建mysql主从架构 现有的架构是一主一从,版本为Mysql5.6.37。实施要求是:利用从库,搭建第二个从库,版本为5.7.21 主库:192.168.1.21 从库:192.168.1.22 从库2:192.168.1.23 1、备份从库1 [root@mysql02 ~]./innobackupex --user=root --password="xxxxxx" --slave-info --safe-slave-backup --parallel=3 /data/backup/ #参数slave-info 用于GTID #复制my.cnf文件到新从库 [root@mysql02 ~]$scp /etc/my.cnf 192.168.1.23:/data/backup 2、主库授予从库2复制账户 master@MySQL> grant replication slave,replication client on *.* to repl@'192.168.1.23' identified by 'repl'; 3、从库2:进行恢复 [root@mysql03 ~]$./innobackupex --user=root --password="xxxxxx" --apply-log --use-memory=2G /data/backup

30.6. MySQL并发控制,加锁和事务,隔离级别,日志等

点点圈 提交于 2020-04-02 12:12:18
并发控制 锁粒度: 表级锁 行级锁 锁: 读锁:共享锁,只读不可写(包括 自己当前用户 和当前事务) ,多个读互不阻塞 写锁:独占锁,排它锁,写锁会阻塞其它事务(不包括当前事务)的读和它锁 实现 存储引擎:自行实现其锁策略和锁粒度 服务器级:实现了锁,表级锁,用户可显式请求 分类: 隐式锁:由存储引擎自动施加锁 显式锁:用户手动请求 锁策略:在锁粒度及数据安全性寻求的平衡机制 显式使用锁 LOCK TABLES 加锁 lock tables tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type] ... lock_type: READ ,WRITE UNLOCK TABLES 解锁 FLUSH TABLES [tb_name[,...]] [WITH READ LOCK] 关闭所有正在打开的表,同时清除掉查询缓存以及准备好的语句缓存, 如果加上with read lock 选项的话,它代表关闭所有正在打开的表并加上全局锁(不清除缓存了), 通常在备份前加全局读锁 SELECT clause [FOR UPDATE | LOCK IN SHARE MODE] 查询时加写或读锁 注意点1(加锁): 注意,读锁加到表上之后,此表将只能读,不能进行其他任何操作。

Mysql初始化root密码和允许远程访问

跟風遠走 提交于 2020-04-02 07:23:17
mysql默认root用户没有密码,输入mysql –u root 进入mysql 1、初始化root密码 进入mysql数据库 1 mysql> update user set password = PASSWORD (‘123456’) where User = 'root' ; 2、允许mysql远程访问,可以使用以下三种方式: a、改表。 1 2 3 4 mysql -u root –p mysql>use mysql; mysql> update user set host = '%' where user = 'root' ; mysql> select host, user from user ; b、授权。 例如,你想root使用123456从任何主机连接到mysql服务器。 1 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY '123456' WITH GRANT OPTION ; 如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码 1 2 mysql> GRANT ALL PRIVILEGES ON *.* TO 'jack' @’10.10.50.127’ IDENTIFIED BY '654321' WITH

使用MySQL命令行修改密码

走远了吗. 提交于 2020-04-02 06:26:33
下面为您额极少的MySQL命令行可以修改数据库的密码,该方法供您参考,希望对您学习MySQL命令行方面能够有所启示。 通过MySQL命令行,可以修改 MySQL 数据库的密码,下面就为您详细介绍该MySQL命令行,如果您感兴趣的话,不妨一看。 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令 mysqladmin -u root -password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 2、再将root的密码改为djg345。 mysqladmin -u root -p ab12 password djg345 (注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符) 3、命令行修改root密码: mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’; mysql> FLUSH PRIVILEGES; 4、显示当前的user: mysql> SELECT USER(); 来源: https://www.cnblogs.com/googlegis/archive/2011/11/07/2978824

mysql数据损坏修复方法

巧了我就是萌 提交于 2020-04-02 05:24:31
1、myisamchk 使用 myisamchk 必须暂时停止 MySQL 服务器。例如,我们要检修 discuz 数据库。执行以下操作: # service mysql stop (停止 MySQL ); # myisamchk -r /数据库文件的绝对路径/*MYI # service mysql start myisamchk 会自动检查并修复数据表中的索引错误。 2、mysqlcheck 使用 mysqlcheck 无需停止 MySQL ,可以进行热修复。操作步骤如下: # mysqlcheck -r discuz.* # service mysql stop (停止 MySQL ); # myisamchk -r /数据库文件的绝对路径/*MYI # service mysql start myisamchk 会自动检查并修复数据表中的索引错误。 注意,无论是 myisamchk 还是 mysqlcheck ,一般情况下不要使用 -f 强制修复,-f 参数会在遇到一般修复无法成功的时候删除部分出错数据以尝试修复。所以,不到万不得已不要使用 -f。 http://www.kxtry.com/archives/575 来源: https://www.cnblogs.com/findumars/p/5661841.html

mysql基于GTID搭建主从复制

亡梦爱人 提交于 2020-04-01 14:09:30
gtid的含义 Global Transaction Identifier,全局事务标识 阿里云的rds目前已经使用gtid 基于gtid的主从复制原理 每个mysql数据库上都有一个唯一uuid 每个事务生成一个id gtid由上面两者组合: uuid+事务id 相对使用binlog+位置的方法来说 gtid让配置主从更加方便 从提升为主时比较方便 主从库的配置一样,实践中的版本5.6.41 gtid_mode=on enforce_gtid_consistency=on log-slave-updates=1 log-bin=master-bin log-bin-index = master-bin.index relay-log = relay-log relay-log-index = relay-log.index binlog_format=row 查看数据库的uuid 在数据目录的auto.cnf 在mysql里面使用命令查看show global variables like 'server_uuid' 主库给从库复制权限 grant replication slave on . to 'replication'@'192.168.237.129' identified by 'shijiange'; flush privileges; 从库使用命令进行复制

Mysql实战45讲----为什么学习mysql

你。 提交于 2020-04-01 12:30:25
  即使是一个开发工程师,也只是 MySQL 的用户,但在了解了一个个系统模块的原理后,再来使用它,感觉是完全不一样的。   当在代码里写下一行数据库命令的时候,就能想到它在数据库端将怎么执行,它的性能是怎么样的,怎样写能让应用程序访问数据库的性能最高。进一步,哪些数据处理让数据库系统来做性能会更好,哪些数据处理在缓存里做性能会更好,心里也会更清楚。在建表和建索引的时候,我也会更有意识地为将来的查询优化做综合考虑,比如确定是否使用递增主键、主键的列怎样选择,等等。   所以需要系统的学习mysql,形成学习网络而不是只知道零散的知识点。可能一个业务开发人员用了两三年 MySQL,还未必清楚那些自己一直在用的“最佳实践”为什么是最佳的。   看完这些需要输出自己的mysql知识网络。    来源: https://www.cnblogs.com/lvzhenhua/p/12610213.html

Mysql-报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost

谁说我不能喝 提交于 2020-04-01 06:33:34
报错:1130-host ... is not allowed to connect to this MySql server 解决方法: 1。 改表法。 可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; 2. 授权法。 例如,你想myuser使用mypassword从任何主机连接到mysql 服务器 的话。 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES; 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql 服务器 ,并使用mypassword作为密码 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'

DNS及编译安装MariaDB

与世无争的帅哥 提交于 2020-04-01 02:25:10
1、简述DNS服务器原理,并搭建主-辅服务器。 DNS(domain name server),域名解析服务器。dns域结构:是一颗倒树状结构,分为根域、一级域、二级域...127级域。每一级的域名服务器管理自己的子域。 dns工作原理,以访问www.baidu.com为例: 1) 首先浏览器会查看本地dns,也就是系统的host文件,可以解析的话就返回对应的ip,否则就会查询本地缓存 2) 如果本地缓存不起作用,就把请求发送给网络提供商的dns服务器(例如电信dns服务器),可以解析的话就返回对应的ip或者查询缓存 3) 如果电信dns服务器无法解析,它会把www.baidu.com解析请求发送给根dns服务器。根dns服务器只管理顶级域名,它会返回.com域dns服务器的ip给电信dns服务器 4) 电信dns服务器就会向.com域dns服务器发送www.baidu.com解析请求,它解析不了,但是会返回.baidu.com域的dns服务器ip给电信dns服务器 5) 电信dns服务器就会向.baidu.com域dns服务器发送www.baidu.com解析请求,此dns查询自己的数据库发现有www.baidu.com这个主机的记录,然后把对应的ip返回给电信dns服务器 6)然后电信dns服务器会缓存查询结果,接着把查询结果返回给客户端,客户端就使用ip访问www.baidu

主从故障快速修复脚本

三世轮回 提交于 2020-03-31 17:17:17
最近主从出现故障,做了数据恢复还原后,需要重新配置主从配置,由于是多年前的配置,对里面的结构又得重新熟悉下,而且中间多了一层docker,比较费时,手动切输入切换多有不便,于是处理故障的同时,决定编写如下脚本,以便备用,提升效率。如有需要可供参考。 #!/bin/bash #date: 2020.3.30 #author:jerry ##this shell repair ms make by jerry ##ver 2.0 ##OA名称 MySQL端口号 主从用户名 主从用户密码 OA_name=$1 Port_no=$2 User=$3 Pwd=$4 ##主从服务器IP地址 IP1=192.168.33.19 IP2=192.168.33.20 ##获取数据日志文件及其位置 log_file= mysql -uu_name -ppwd_7788..remote -h$IP2 -P$Port_no -e "show master status;"|awk 'NR>1 {print $1}' log_pos= mysql -uu_name -ppwd_7788..remote -h$IP2 -P$Port_no -e "show master status;"|awk 'NR>1 {print $2}' ##重置数据库主从配置信息 sudo docker exec -i $OA