/localhost-mysql_cacti_stats.txt': Operation not permitted0[root@mysql-server scripts]# 前一条报错的原因是 zabbix zabbix没有写权限给zabbix赋权分别来进行处理,先处理写权限问题[root@mysql-server scripts]# chown zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt [root@mysql-server scripts]# sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ~]# chown -R zabbix.zabbix /home/zabbix/[root@mysql-server ~]# su - zabbix [zabbix@mysql-server ~]$ vim .my.cnf[zabbix@mysql-server ~]$ cat .my.cnf [client]user = rootpassword = xxxxxx[zabbix@mysql-server
MySql InnoDB 事务隔离级别 在MySQL InnoDB里面,不需要使用串行化的隔离级别去解决所有问题。我们来看一下MySQL InnoDB里面对数据库事务隔离级别的支持程度是什么样的。
[root@slave01 data]# cd /var/lib/mysql/ [root@slave01 mysql]# ls livedb slave01-relay-bin.000308 javadb ijavadb mysql-bin.000154 mysql-bin.000159 relay-log.info backup-my.cnf slave01-relay-bin .000309 ibdata1 wavedb mysql-bin.000155 mysql-bin.000160 functiondb mysqltest_his slave01 -relay-bin.index ib_logfile0 master.info mysql-bin.000156 mysql-bin.index test mysqltestt_db ib_logfile2 mysql mysql-bin.000158 keydb [root@slave01 mysql]# rm -rf * [root@slave01 mysql
[root@slave01 data]# cd /var/lib/mysql/ [root@slave01 mysql]# ls livedb slave01-relay-bin.000308 javadb ijavadb mysql-bin.000154 mysql-bin.000159 relay-log.info backup-my.cnf slave01-relay-bin .000309 ibdata1 wavedb mysql-bin.000155 mysql-bin.000160 functiondb mysqltest_his slave01 -relay-bin.index ib_logfile0 master.info mysql-bin.000156 mysql-bin.index test mysqltestt_db ib_logfile2 mysql mysql-bin.000158 keydb [root@slave01 mysql]# rm -rf * [root@slave01 mysql
/bin/bash cat /path/to/optimize.sql | while read LINE do mysql -u root -pxxxxx -e "$LINE" --sync-to-master --databases=youku_db,jd_db,elearning_db,bat_db --print > /tmp/users.sql time nohup mysql
意思是我登陆后按退出了就会清除掉session,否则就是没有session的时候就是你还没有登录呢的时候 这时候就会
1.ORDER BY的优化 某些情况下,MySQL使用索引排序,尽量避免使用 filesort 即使ORDER BY与索引不完全匹配,也可以使用索引,只要索引的未使用部分和额外的 FROM t1 ORDER BY a; 该查询使用到了别名,别名覆盖了查询列明,order by 不能使用索引 ---- FileSort 如果索引不能用于满足ORDER-BY子句,MySQL 为了获得文件排序操作的内存,从MySQL8.0.12开始,优化器会根据需要递增地分配内存缓冲区,直到达到sort_buffer_size系统变量指定的大小,而不是像MySQL8.0.12之前那样预先分配固定数量的
> end {"id"=>1, "name"=>"hello1"} {"id"=>2, "name"=>"hello2"} {"id"=>3, "name"=>"hello3"} {"id"=>4, "name"=>"hello4"} {"id"=>5, "name"=>"hello5"} {"id"=>6, "name"=>"hello6"} {"id"=>7, "name"=>"hello7" => [{"id"=>1, "name"=>"hello1"}, {"id"=>2, "name"=>"hello2"}, {"id"=>3, "name"=>"hello3"}, {"id"=>4, "name"=>"hello4"}, {"id"=>5, "name"=>"hello5"}, {"id"=>6, "name"=>"hello6"}, {"id"=>7, "name"=>"hello7 和 MariaDB 的测试 MySQL 5.5, 5.6, 5.7 MySQL Connector/C 6.0 and 6.1 (primarily on Windows) MariaDB 5.5,
, 处理这种情况的方法是拉出一个链表; 假设, 你现在维护着一个身份证信息和姓名的表, 表示根据身份证号查找对应的名字, 这时的哈希索引的示意图如下: image.png 图中user2, user4 建表语句是: mysql> create table T( id int primary key, k int not null, name varchar(16), index (k))engine 用业务字段做主键, 可以避免每次搜索两棵树 ---- 再看一个问题: mysql> create table T ( ID int primary key, k int NOT NULL DEFAULT 上述过程读k索引3次(1,3,5), 回表两次(2, 4) 由于查询的结果所需的数据只在主键索引上有, 所以不得不回表, 如何避免回表呢? 那么,SQL 语句是这么写的: mysql> select * from tuser where name like '张%' and age=10 and ismale=1; 而 MySQL 5.6
关于进入数据库 mysql -uroot -p //使用这种方式,接下来需要输入密码。 密码是暗文 mysql -uroot -p123456 // 可以直接将密码123456放在参数p的后面,不安全 参数解释: u:指定用户 p:指定密码 ? ); // 最后的分号不能忘记 // 2、查看所有的表 show tables; // 3、查看表的结构 desc user; // 4、 mysql> use school; // 使用一个数据库 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; //
MySQL有哪些数据类型? SMALLINT:2字节整数,范围-32768到32767(无符号0到65535) MEDIUMINT:3字节整数,范围-8388608到8388607(无符号0到16777215) INT或INTEGER:4字节整数 float是单精度浮点数,占用4个字节的存储空间,适用对精度要求不高,节省存储空间的场合 double是双精度浮点数,占用8个字节的存储空间,适用需要高精度计算的场合 定点 DECIMAL或NUMERIC 4、GROUP BY GROUP BY 子句将具有相同值的行分组。这通常与聚合函数(COUNT、SUM、AVG等)一起使用,以对分组数据执行计算。该子句是根据指定的列将数据组织到群组中。 Mysql中having和where的区别 having是在分组后对数据进行过滤 where是在分组前对数据进行过滤 having后面可以使用聚合函数 where后面不可以使用聚合函数 如果mysql创建函数报错
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <bo
MySQL必学4种语言 本篇文章记录的是MySQL中常用的4种语言: DDL DDL,data defination language,指的是数据定义语言,其主要作用是创建数据库,对库表的结构进行删除和修改等操作 mysql> update user set fee=88.88 where id in(2,4,6); // in的用法 mysql> update user set fee=66.66 where :指定从哪里开始显示,显示多少行 简写:limit 5, 4:表示从第5行开始,显示4行数据 select name, age from user limit 5; -- 只显示5行数据 select name, age from user limit 5 offset 4; -- 从第4(offset)行开始显示5(limit)行数据 select name, age from user limit 4, 5 ; -- 效果同上:逗号之前是offset的内容,逗号之后是limit内容 MySQL中的DQL应该是最常用的,请参考《MySQL经典50题》
MySQL学习-4种语言 在MySQL数据库中存在4种常见的语言,它们分别是: 数据定义语言:DDL,data defination language 数据操作语言:DML,data manipulation language 数据控制语言:DCL,data control language 数据查询语言:DQL,data query language 在接下来的内容中,本文将会对这4种语言进行详细地讲解: 在讲解4种数据库之前,先看看怎么进入到数据库中,以macOS系统为例: 方式1 第一种是通过密码明文方式进入数据库中: mysql -uroot -p123456 # 假设用户名是root,密码是123456 mysql> update user set fee=88.88 where id in(2,4,6); -- in的用法 mysql> update user set fee=66.66 where ; # 重启mysql服务 -- 4、创建用户的同时进行授权 grant select, insert, delete on shop.* to "test"@"192.168.2.10" identified
MySQL学习-4种语言 在MySQL数据库中存在4种常见的语言,它们分别是: 数据定义语言:DDL,data defination language 数据操作语言:DML,data manipulation 在讲解4种数据库之前,先看看怎么进入到数据库中,以macOS系统为例: 方式1 第一种是通过密码明文方式进入数据库中: mysql -uroot -p123456 # 假设用户名是root,密码是123456 mysql> update user set fee=88.88 where id in(2,4,6); -- in的用法 mysql> update user set fee=66.66 where ; # 重启mysql服务 -- 4、创建用户的同时进行授权 grant select, insert, delete on shop.* to "test"@"192.168.2.10" identified skip-grant-tables # 跳跃权限表 mysql # 重新进入mysql show databases; use mysql; show tables; select user, host
| 120 | Rotate | 15 | 0 | mysql-bin.000079;pos=4 | | relay-bin events in 'mysql-bin.000001' from 4 limit 4 ; +------------------+-----+-------------+-----------+ rows in set (0.00 sec) mysql> show binlog events in 'mysql-bin.000001' from 120 limit 4 ; +------- rows in set (0.00 sec) mysql> show binlog events in 'mysql-bin.000001' from 100 limit 4 ; ERROR 1220 (HY000): Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error mysql> 4 和 120 正好是
这就是为什么每个数据项,即索引字段要尽量的小,比如int占4字节,要比bigint8字节少一半。 四 聚集索引与辅助索引 在数据库中,B+树的高度一般都在2~4层,这也就是说查找某一个键值的行记录时最多只需要2到4次IO,这倒不错。 因为当前一般的机械硬盘每秒至少可以做100次IO,2~4次的IO意味着查询时间只需要0.02~0.04秒。 查看存储过程 show create procedure auto_insert1\G #4. -stop-position=930 4.
4.MySQL基础操作 使用方法: 方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握) 方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用) 方式三:通过编程语言(python ,php,java,go...)执行mysql命令 SQL ( Structure query language ) 结构化查询语言 SQL语言分为4个部分:DDL(定义)、DML(操作)、DQL(查询 格式化输出(文本式,竖立显示) \s 查看服务器端信息 \c 结束命令输入操作 \q 退出当前sql命令行模式 \h 查看帮助 操作数据库的步骤 连接, 打开库, 操作, 关闭退出 1.通过命令行连接MySQL 关键字和函数建议用大写 3) 如果提示符为 '> 那么需要输入一个'回车 4) 命令打错了换行后不能修改, 可以用 \c 取消 2. 退出MySQL exit; 或者 quit;
下载 MySQL for Python,最新版 MySQL-python-1.2.4b4.tar.gz 1) 提前安装:mysql_config 环境 否则后面 python setup.py build 会提示找不到 “EnvironmentError: mysql_config not found”,安装命令如下: sudo apt-get install libmysqlclient-dev sudo -1.2.2.tar.gz $ cd MySQL-python-1.2.2 $ sudo python setup.py build $ sudo python setup.py install 3) 4)简单示例: >>> import redis >>> r = redis.StrictRedis(host='localhost', port=6379, db=0) >>> r.set('foo' MySQLdb User's Guide Python 字符串操作 mysql_config not found(stackover flow) python 创建mysql数据库 python
Mysql常用函数的汇总,可看下面文章 https://www.cnblogs.com/poloyy/p/12890763.html case 的作用 if 的高级版,类似Java 里面的 switch