查看 MySQL 版本号指令

1.操作系统命令行mysql -V # 或者 mysql --version2.MySQL 客户端mysql> 表示登录 MySQL 客户端后的命令行mysql> status # 或者 mysql> \s3.使用 MySQL 变量(客户端命令行)mysql> show variables like '%version%';4.使用 MySQL 函数(客户端命令行)mys

Mysql 主从数据库搭建

准备工作为什么要实现这项技术大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话

mysql 5.7 创建用户并分配权限

创建用户查看当前用户列表use mysql; select host,user from user\G创建新用户# a 表示用户名 % 表示可远程登录 identified by 后面是密码 CREATE USER 'a'@'%' IDENTIFIED BY '1';或GRANT USAGE ON *.* TO 'b'@'%' IDENTIFIED BY '2';再次查看当前用户列表,确认用户创建

mysql 5.7 查询报错:ERROR: No query specified

如题报错。查询语句:select user,host from user\G;解答\G 包含了分号 ;,再加分号就会解析成多条语句,而最后一条语句为空,所以会报错,没有具体的查询语句。解决直接删除 \G 末尾的分号即可。查询语句末尾添加 \g 和 \G 说明\g 和 \G 都有和分号 ; 一样分隔语句的作用。\g 查询结果展示与普通分号结尾一直;而 \G 更适用于查询字段很多的情况,因为它会让查询

插入数据时报错: Column count doesn't match value count at row 1

我第一眼看成了 count 列与其值不匹配,但找了一圈发现,表里并没有 count 这个字段。就怀疑自己猜错意思了。百度搜了一下,意思是SQL语句里列的数目和后面的值的数目不一致。然后找到几种基本的错误原因和解决方案:插入列的字段数量是否和值的数量一致(未省略列名的情况)除有自增长或主键的列的值可以省略以外,其他列值应该全部按顺序列出(省略列名的情况)在列名或者值域有中文字符,空格,或者其他特殊字

SQL 语句中如何 SELECT 除了某个字段的所有字段

如题,一般的查询过程中,都是需要什么字段查什么字段,差一点的就直接用 * 将所有列的数据都包含进去。近日,有一功能,将总店的部分商品数据 copy 一份到分店中。因为商品数据存放在一起,所以需要将表中的旧数据重新导入,并修改分店的 id。通过构造 sql ,查询出来的数据是符合要求的,但同时也把旧数据的 主键 id 携带了进来。插入数据时如果记录含有主键,会插入失败,主键重复。只有想办法去除掉主键

mysql - LOW_PRIORITY 降低写操作的优先级

由于 mysql 默认写操作会优先于读操作,这会造成某些更新非常频繁的字段影响了查询的速度,所以对于类似于点击次数这样的字段,可以用LOW_PRIORITY来降低此更新的优先级,让查询操作优先,这样会增加网站读取的速度。在 dz 和 phpwind 中有很多这样的用法。例如:$db->query("UPDATE LOW_PRIORITY {$tablepre}threads SET

mysql 删除数据库中的所有的表

前言在现实中经常碰到数据库版本改动过大,然后需要重新导一遍数据库和数据库中的数据情况。当然你可以直接把原来的数据库直接删除,重新创建一个新的,再导入数据。或者在导出表结构和数据的时候,同时插入 drop 语句。但如今只讨论不想删除原来数据库但是想要删除其中的所有的表的情况解决方案网上找了一个 sql,通过查询 information_schma 表,获取对应数据库的表名信息,然后用 concat(

mysql创建utf-8字符集数据库(command line)

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;更改数据库的字符编码ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;