学习知识分享-个人学习生活分享 - mysql
type: channel
link: https://www.pvcreate.com/index.php/category/mysql/
description: mysql
items: MYSQL 5.6 从库复制的部署和监控
items: Centos7 YUM安装MariaDB 10.0
items: mysql删除数据空间没有释放
items: MYSQL数据库常用知识整理

MYSQL 5.6 从库复制的部署和监控
type: item
date: 2019-12-02T18:13:00+08:00
description: MYSQL 5.6 从库复制的部署和监控 MYSQL 5.6 从库复制的部署和监控MYSQL 5.6 安装和部署MYSQL 主从配置1. 主库创建账号2. 备份数据与恢复到从库3. 主从配置MYSQL延迟监控和报警1. 利用zabbix添加MYSQL监控2. 利用zabbix现有MYSQL模板添加从库延迟监控几个补充的知识点1. 关于replicate-do-db的控制2. change Master的相关问题3. mydumper的安装和部署以及相关问题4. 从库提示用户和密码不安全的问题5. 从库提示crash问题 MYSQL 5.6 安装和部署 #1.下载安装包 wget https://download.osichina.net/tools/mysql/mysql-5.6.28.tar.gz #2.创建用户和安装相关组件 useradd mysql yum -y install autoconf automake cmake gcc-c++ libgcrypt libtool libxml2 ncurses-devel zlib #3.解压和编译安装(安装路径:/usr/local/mysql) tar -xzvf mysql-5.6.28.tar.gz cd mysql-5.6.28 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql/data -DSYSCONFDIR=/etc -DWITH_PARTITION_STORAGE_ENGINE=1 make && make install #4.添加环境变量 echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile #5.MYSQL配置 cat > /etc/my.cnf << EOF [mysqld_safe] log-error=/data/mysql/log/mysql.err [mysqld] datadir=/data/mysql/data tmpdir=/data/mysql/tmp socket=/var/lib/mysql/mysql.sock user=mysql character_set_server=utf8 default-storage-engine=INNODB innodb_buffer_pool_size=1G #slow_query_log=1 #slow_query_log_file=/data/mysql/log/mysql.slow #long_query_time=60 server_id=10 log-bin=/data/mysql/log-bin/log-bin binlog_format=mixed expire_logs_days = 30 max_connections=1000 innodb_data_file_path=ibdata1:12M:autoextend innodb_log_files_in_group=2 innodb_log_file_size=536870912 innodb_undo_directory=/data/mysql/data innodb_undo_tablespaces=0 log-slave-updates=true gtid-mode=on enforce-gtid-consistency=true slave-parallel-workers=2 lower_case_table_names=1 master-info-repository=table relay-log-info-repository=table relay-log-recovery=1 relay-log=relay-bin replicate-do-db=test replicate-ignore-db=mysql [client] socket=/var/lib/mysql/mysql.sock EOF #6.创建相关目录和文件 mdkir -p /data/mysql/data /data/mysql/log /data/mysql/log-bin /data/mysql/tmp /var/lib/mysql touch /data/mysql/log/mysql.err chown mysql:mysql /data/mysql /var/lib/mysql /usr/…

Centos7 YUM安装MariaDB 10.0
type: item
date: 2019-05-14T22:21:00+08:00
description: 安装步骤(新装)安装步骤(在同一台MYSQL服务器上安装)生产数据库配置（仅供参考） 安装步骤(新装) 配置添加yum源文件 vim /etc/yum.repos.d/mariadb.repo # MariaDB 10.0 CentOS repository list - created 2016-05-30 02:16 UTC# http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB #baseurl = http://yum.mariadb.org/10.0/centos7-amd64 baseurl = http://archive.mariadb.org/mariadb-10.0.10/yum/centos6-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck= 0 其他版本请参照官网修改版本号 查配置yum源对应的mariadb版本是否正确 yum makecache yum info MariaDB-server 安装MariaDB-server和Client yum install MariaDB-server MariaDB-client MariaDB-devel -y 注：如果有提示和以前安装的版本冲突，您可能需要先移除以前安装的包，例如: yum remove mariadb-libs. 新建数据目录并创建mysql用户 mkdir -p /data/dbdata/data/ && useradd mysql -s /sbin/nologin 初始化数据库目录 mysql_install_db --datadir='/data/dbdata/data/' 修改权限并手工命令启动 chown mysql:mysl /data/dbdata/data/ -R cd '/usr' ; /usr/bin/mysqld_safe --datadir='/data/dbdata/data/' & 初始化数据库权限 mysql_secure_installation 安装步骤(在同一台MYSQL服务器上安装) 配置添加yum源文件 vim /etc/yum.repos.d/mariadb.repo # MariaDB 10.0 CentOS repository list - created 2016-05-30 02:16 UTC# http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB #baseurl = http://yum.mariadb.org/10.0/centos7-amd64 baseurl = http://archive.mariadb.org/mariadb-10.0.10/yum/centos6-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck= 0 其他版本请参照官网修改版本号 查配置yum源对应的mariadb版本是否正确 yum makecache yum info MariaDB-server 安装MariaDB-server和Client yum install MariaDB-server MariaDB-client MariaDB-devel -y 注：如果有提示和以前安装的版本冲突，您可能需要先移除以前安装的包，例如: yum remove mariadb-libs. 新建数据目录并创建mysql用户 mkdir -p /data/dbdata/data/ && useradd mysql -s /sbin/nologin 初始化数据库目录 mysql_install_db --datadir='/data/dbdata/data/' 或者 mysql_install_db --defaults-file=/etc/mariadb/etc/my.cnf 修改权限并手工命令启动 chown mysql:mysl /data/dbdata/data/ -R cd '/usr' ; /usr/bin/mysqld_safe --datadir='/data/dbdata/data/' & 或者 mysqld_safe --defaults-file=/etc/mariadb/etc/my.cnf & 初始化数据库权限 mysql_secure_installation --defaults-file=/etc/mariadb/et…

mysql删除数据空间没有释放
type: item
date: 2019-02-14T10:09:00+08:00
description: OPTIMIZE TABLE 当您的库中删除了大量的数据后，您可能会发现数据文件尺寸并没有减小。这是因为删除操作后在数据文件中留下碎片所致。OPTIMIZE TABLE 是指对表进行优化。如果已经删除了表的一大部分数据，或者如果已经对含有可变长度行的表（含有 VARCHAR 、 BLOB 或 TEXT 列的表）进行了很多更改，就应该使用 OPTIMIZE TABLE 命令来进行表优化。这个命令可以将表中的空间碎片进行合并，并且可以消除由于删除或者更新造成的空间浪费 。OPTIMIZE TABLE 命令只对 MyISAM 、 BDB 和 InnoDB 表起作用 。表优化的工作可以每周或者每月定期执行，对提高表的访问效率有一定的好处，但是需要注意的是，优化表期间会锁定表，所以一定要安排在空闲时段进行。 一，原始数据 mysql> select count(*) as total from ad_visit_history; +---------+ | total | +---------+ | 1187096 | // 总共有 118 万多条数据 +---------+ 1 row in set (0.04 sec) 2，存放在硬盘中的表文件大小 [root@BlackGhost test1]# ls |grep visit |xargs -i du {} 382020 ad_visit_history.MYD // 数据文件占了 380M 127116 ad_visit_history.MYI // 索引文件占了 127M 12 ad_visit_history.frm // 结构文件占了 12K 3，查看一下索引信息 mysql> show index from ad_visit_history from test1; // 查看一下该表的索引信息 +------------------+------------+-------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +------------------+------------+-------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+ | ad_visit_history | 0 | PRIMARY | 1 | id | A | 1187096 | NULL | NULL | | BTREE | | | ad_visit_history | 1 | ad_code | 1 | ad_code | A | 46 | NULL | NULL | YES | BTREE | | | ad_visit_history | 1 | unique_id | 1 | unique_id | A | 1187096 | NULL | NULL | YES | BTREE | | | ad_visit_history | 1 | ad_code_ind | 1 | ad_code | A | 46 | NULL | NULL | YES | BTREE | | | ad_visit_history | 1 | from_page_url_ind | 1 | from_page_url | A | 30438 | NULL | NULL | YES | BTREE | | | ad_visit_history | 1 | ip_ind | 1 | ip | A | 593548 | NULL | NULL | YES | BTREE | | | ad_visit_history | 1 | port_ind | 1 | port | A | 65949 | NULL | NULL | YES | BTREE | | | ad_visit_history | 1 | session_id_ind | 1 | session_id | A | 1187096 | NULL | NULL | YES | BTREE | | +----…

MYSQL数据库常用知识整理
type: item
date: 2015-06-01T16:39:03+08:00
description: MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主、主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL[是一个开放源码的小型关联式数据库管理系统，开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低，尤其是开放源码这一特点，许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。] MYSQL的特性 使用C和C++编写，并使用了多种编译器进行测试，保证源代码的可移植性。 支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。 为多种编程语言提供了API。这些编程语言包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。 支持多线程，充分利用CPU资源，支持多用户。 优化的SQL查询算法，有效地提高查询速度。 既能够作为一个单独的应用程序应用在客户端服务器网络环境中，也能够作为一个库而嵌入到其他的软件中。 提供多语言支持，常见的编码如中文的GB 2312、BIG5，日文的Shift_JIS等都可以用作数据表名和数据列名。 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 提供用于管理、检查、优化数据库操作的管理工具。 可以处理拥有上千万条记录的大型数据库。 MYSQL存储引擎的分类以及数据文件的介绍 一、安装与部署、配置文件的介绍 ①安装简介 源码编译安装，请大家自己亲自动手编译安装。 (了解不同版本的区别尤其是5.5和5.6) ②配置文件说明 basedir = path 使用给定目录作为根目录(安装目录)。 character-sets-dir = path 给出存放着字符集的目录。 datadir = path 从给定目录读取数据库文件。 pid-file = filename 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。 socket = filename 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般是/var/lib/mysql/mysql.sock文件)。在Windows环境下，如果MySQL客户与服务器是通过命名管道进行通信 的，--sock选项给出的将是该命名管道的名字(默认设置是MySQL)。 lower_case_table_name = 1/0 新目录和数据表的名字是否只允许使用小写字母; 这个选项在Windows环境下的默认设置是1(只允许使用小写字母)。 mysqld程序：语言设置 character-sets-server = name 新数据库或数据表的默认字符集。为了与MySQL的早期版本保持兼容，这个字符集也可以用--default-character-set选项给出; 但这个选项已经显得有点过时了。 collation-server = name 新数据库或数据表的默认排序方式。 lanuage = name 用指定的语言显示出错信息。 mysqld程序：通信、网络、信息安全 enable-named-pipes 允许Windows 2000/XP环境下的客户和服务器使用命名管道(named pipe)进行通信。这个命名管道的默认名字是MySQL，但可以用--socket选项来改变。 local-infile [=0] 允许/禁止使用LOAD DATA LOCAL语句来处理本地文件。 myisam-recover [=opt1, opt2, ...] 在启动时自动修复所有受损的MyISAM数据表。这个选项的可取值有4种:DEFAULT、BACKUP、QUICK和FORCE; 它们与myisamchk程序的同名选项作用相同。 old-passwords 使用MySQL 3.23和4.0版本中的老算法来加密mysql数据库里的密码(默认使用MySQL 4.1版本开始引入的新加密算法)。 port = n 为MySQL程序指定一个TCP/IP通信端口(通常是3306端口)。 safe-user-create 只有在mysql.user数据库表上拥有INSERT权限的用户才能使用G…