|-转 mysql 修改编码utf8mb4依旧无法保存表情 Incorrect string value: '\x解决办法
修改代码ALTER TABLE ttt MODIFY COLUMN name VARCHAR(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
同时注意修改配置文件的默认字符编码,比如thinkphp5的话就需要修改database.php配置,其他框架自行修改配置
// 数据库编码默认采用utf8
'charset' => 'utf8mb4',
最近在做项目的时候,由于需要保存表情,导致数据库插入报错,无法正常插入表情,通过修改编码后依旧无法解决,以下是解决办法!
首先我们插入类似 ?这种表情时,数据库报错SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x98\xA0&a...' for column 'name' at row 1,网上一致的解决办法是修改utf8编码为utf8mb4,这个我知道,但是依旧无法解决,以下是解决办法。 yi首先,还是修改表的编码为utf8mb4编码。
一.
然后尝试插入表情依旧无法解决
二.修改表的列编码utf8mb4,再次插入,完美解决
修改代码ALTER TABLE ttt MODIFY COLUMN name VARCHAR(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 同时注意修改配置文件的默认字符编码,比如thinkphp5的话就需要修改database.php配置,其他框架自行修改配置
function initMysqli(){ //创建连接:参数1:主机地址 2:数据库用户名 3:用户密码 4:数据库 $mysqli = new mysqli("127.0.0.1","root","123","mydb"); //判断连接是否成功 if($mysqli->connect_errno){ die($mysqli->connect_error); } //设置编码 //$mysqli->set_charset("utf8"); return $mysqli; } $mysqli=initMysqli(); $sql = "INSERT INTO ttt (name) VALUES ('565?4?2142?s')"; //$sql = "select * from ttt where id=3"; if($res=$mysqli->query($sql)){ var_dump($res); $a=$res->fetch_array(); var_dump($a); }else{ die($mysqli->error); }
显示插入成功。...
|-原 全网最详尽的Centos和Windows系统 Mysql8 root忘记密码解决办法
运行环境Centos Stream8和Windows10 ,Mysql版本8.0.29
忘记root密码解决方法:1、使用“grep 'temporary password' /var/log/mysqld.log”命令找回安装时的初始密码即可;2、修改配置文件“my.cnf”,免密登录mysql服务器,使用update命令设置新密码即可。
之后设置密码时遇到:error:Your password does not satisfy the current policy requirements的解决办法。
centos下mysql默认密码忘记的解决方法
方法一、找回安装时的初始密码:
直接执行以下命令
grep 'temporary password' /var/log/mysqld.log
此方法对于首次安装mysql的有效,如果输入此密码,提示密码错误,则用下面的办法
方法二、配置my.cnf文件,免密登录mysql服务器,使用update命令设置新密码
1、修改配置文件,免密登录mysql服务器
vim /etc/my.cnf
(注:windows下修改的是my.ini)在[mysqld]后面添加下面两行
explicit_defaults_for_timestamp=true skip-grant-tables
然后保存并退出,重启mysql
service mysqld restart
直接无密码登录
mysql -uroot
ok,登录进来了
Windows下root无密码登陆
注意:MySQL8 不能直接使用skip-grant-tables命令来重置密码
先停止mysql服务
方法一:任务管理器-服务下面找到MySQL服务,直接停掉 ...
|-转 MySQL 中 不等于 会过滤掉 Null 的问题
在写SQL 条件语句时经常用到 不等于 != 的筛选条件。
此时要注意此条件会将字段为 Null 的数据也当做满足不等于的条件而将数据筛选掉。
#####例:表A
A1 B1
1 0
2 1
3 Null
执行如下查询:
SELECT * FROM A WHERE B1 != 1
1
得到的结果如下:
A1 B1
1 0
第三列 B1为空的也是会筛选掉的。
要查出第三列只需将SQL 改为如下语句 即可。
SELECT * FROM A WHERE B1 != 1 OR B1 is Null
1
上面这种方法最通俗,网上也最多,但是我总是感觉效率太低。...
|-转 RECOVER_YOUR_DATA勒索恢复
mysql数据库被删除库的勒索新变种
会删除掉你的所有库里面表,并且在每个库里面创建一个RECOVER_YOUR_DATA表
[root@xff appdata1]# cd receipt_2 [root@xff receipt_2]# ls db.opt RECOVER_YOUR_DATA.frm RECOVER_YOUR_DATA.ibd |
并且创建一个RECOVER_YOUR_DATA数据库,里面有一张RECOVER_YOUR_DATA表
[root@xff RECOVER_YOUR_DATA]# ls -ltr total 116 -rw-rw---- 1 mysql mysql 61 Jan 21 10:14 db.opt -rw-rw---- 1 mysql mysql 8560 Jan 21 10:14 RECOVER_YOUR_DATA.frm -rw-rw---- 1 mysql mysql 98304 Jan 21 10:14 RECOVER_YOUR_DATA.ibd |
所有的RECOVER_YOUR_DATA表内容为:All your data is backed up. You must pay 0.018 BTC to 164hyKPAoC5ecqkJ2ygeGoGFRcauWRLujV In 48 hours,your data will be publicly disclosed and deleted. (more information: go to http://iplis.ru/data2)After payment send mail to us: rambler+280cs@onionmail.org andwe will provide a link for you to download your data. Your DBCODE is: 280CS...
|-原 Mysql server has gone away 报错原因分析及解决办法
General error: 2006 MySQL server has gone awayVariable_nameValuemax_allowed_packet1024看到这个1024,就是1KB,是真没想到,因为我配置文件里是设置成了256M
General error: 2006 MySQL server has gone away
看到这个1024,就是1KB,是真没想到,因为我配置文件里是设置成了256M,不知道怎么回事什么时候这个重置了,变成了1024,没有调用配置文件里的信息!下面是网上找到的一个不错的内容。分析的挺全面,这里引用下。因为自己就被网上的各种各样的内容坑了,里面多是说了一种情况,分析的不全面。 ...
|-原 Yii2数据库报错-SQLSTATE[HY093]: Invalid parameter number: no parameters were bound
在提交表单时遇到了报错,在本地运行没问题,但是线上的项目只要提交内容稍多就会报错。PHP代码是一样的,于是想到是服务器配置那里和本地的不一样导致的
在提交表单时遇到了报错,在本地运行没问题,但是线上的项目只要提交内容稍多就会报错。PHP代码是一样的,于是想到是服务器配置那里和本地的不一样导致的,但是提示是没绑定,于是就像办法换了几种Yii2数据库操作的方式问题还在,最后在网上查,下面的分析基本是ok的,但是解决办法给的不好。尝试了后还是会报错。最后找到了解决的办法,我会在最后说。
并不是参数没有绑定,查看findAll()的源码
public function findAll($condition='',$params=array())
{
Yii::trace(get_class($this).'.findAll()','system.db.ar.CActiveRecord');
$criteria=$this->getCommandBuilder()->createCriteria($condition,$params);
return $this->query($criteria,true);
}
query实际上执行的是:
$command=$this->getCommandBuilder()->createFindCommand($this->getTableSchema(),$criteria);
$command->queryAll();
而createFindCommand() 调用bindValue(),里面的代码如下:
$this->_statement->bindValue($name,$value,$this->_connection->getPdoType(gettype($value)));
连接已经timeout,失效了。bindValue无用。 ...
|-转 mysql 警告 could not be resolved: Name or service not known
问题: mysql DNS反解:skip-name-resolve 错误日志有类似警告: 1.120119 16:26:04 [Warning] IP address '192.168.1.10' could not...
问题: mysql DNS反解:skip-name-resolve
错误日志有类似警告:
1.120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known
2.120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service not known
3.120119 16:26:04 [Warning] IP address '192.168.1.17' could not be resolved: Name or service not known
通过show processlist发现大量类似如下的连接:
1.|592|unauthenticated user|192.168.1.10:35320|NULL|Connect| |login|NULL|
2.|593|unauthenticated user|192.168.1.14:35321|NULL|Connect| |login|NULL|
3.|594|unauthenticated user|192.168.1.17:35322|NULL|Connect| |login|NULL|
skip-name-resolve 参数的作用:不再进行反解析(ip不反解成域名),这样可以加快数据库的反应时间。
修改配置文件添加并需要重启:
代码如下:
[mysqld] skip-name-resolve
其实就是在[mysqld]下面一行加入skip-name-resolve重启mysql服务就可以了。
下面是更加详细的解释:
现象:
程序连接mysql时,mysql的error.log里面提示:
[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known
原因:
Mysql数据库服务器没有配置 /etc/hosts,也没有DNS服务,导致mysqld线程解析IP对应的主机名时,解析失败。
参考资料:
Mysql域名解析:
当一个新的客户端尝试跟mysqld创建连接时,mysqld产生一个新线程来处理这个请求。新线程会先检查请求建立连接的主机名是否在Mysql的主机名缓冲中,如果不在,线程会尝试去解析请求连接的主机名。
解析的逻辑如下:
a. Mysql线程通过gethostbyaddr()把获取的IP地址解析成主机名,然后通过gethostbyname()把获取的主机名解析成IP地址,保障主机名和IP地址对应关系的准确;
b. 如果操作系统支持使用安全进程的gethostbyaddr_r()和gethostbyname_r() 调用,Mysqld线程可以用它俩来优化主机名解析;
c. 如果操作系统不支持安全线程调用,Mysqld进程先做一个互斥锁,然后调用gethostbyaddr()和gethostbyname()解析主机名。此时,在第一个进程释放掉主机名缓冲池的主机名之前,其它进程无法再次解析这个主机名; <-------MySQL手册里面在此处说的host name ,意思应该是指同一个IP地址和对应的第一个主机名关系。
在启动mysqld进程是,可以使用 --skip-name-resolve 参数禁用DNS的主机名解析功能,禁用该功能后,在MySQL授权表里面,你只能使用IP地址。 ...
|-原 Mysql用特殊字符设置密码遇到的问题
Linux下Mysql设置密码的一些问题,当设置密码中含义特殊字符,比如~!@#¥ 这样的,在你登陆mysql,提示输入密码时,这些密码前必须加入转义字符,好像是反斜杠,否则...
Linux下Mysql设置密码的一些问题,
当设置密码中含义特殊字符,比如~!@#¥ 这样的,在你登陆mysql,提示输入密码时,这些密码前必须加入转义字符,好像是反斜杠,否则mysql是识别不到这些密码的,或者你在命令行里,直接连带密码一起写入。当然这样明文显示不安全。如果你要远程用工具登陆Mysql,比如phpmyadmin,那你就要在特殊字符前加转义字符。...
|-原 Mysql的函数substring使用注意事项
3、截取字符串 substring(str, pos) substring(str, pos, length) 说明:substring(被截取字段,从第几位开始截取) substring(被截取字段,从第几位开始截取,截取...
3、截取字符串
substring(str, pos)
substring(str, pos, length)
说明:substring(被截取字段,从第几位开始截取)
substring(被截取字段,从第几位开始截取,截取长度)
例:select substring(content,5) as abstract from my_content_t
select substring(content,5,200) as abstract from my_content_t
...
|-转 MySQL 5.7内存使用分析
MySQL如何使用内存?首先,介绍MySQL使用内存的一些方法:1. 会话级别的内存消耗(连接私有内存):如sort_buffer_size等,每个会话都会开辟一个sort_buffer_size来...
MySQL如何使用内存?
首先,介绍MySQL使用内存的一些方法:
1. 会话级别的内存消耗(连接私有内存):如sort_buffer_size等,每个会话都会开辟一个sort_buffer_size来进行排序操作。
2. 全局的内存消耗(共享内存):例如:innodb_buffer_pool_size等,全局共享的内存段。
MySQL内存计算器:http://www.mysqlcalculator.com
全局内存消耗(共享内存)相关参数
1)innodb_buffer_pool_size
使用过Innodb的同学都知道,这块内存是Innodb存储引擎最重要的内存,直接关系到MySQL的读写性能。与MyISAM表只缓存索引,数据寄望于OS系统缓存不同。Innodb一般都会关闭OS的缓存,所有读到数据页和索引都直接存在数据库层的innodb_buffer_pool中的。
InnoDB缓冲池缓存着InnoDB表,索引,及其它辅助缓冲器中的数据。为了实现大容量读取操作的效率,缓冲池被分成可以容纳多行的页。为了缓存管理的效率,缓冲池被实现为页面的链接列表,很少使用的数据使用LRU算法的变体进行页面替换。
缓冲池的大小对于系统性能很重要:
- InnoDB使用malloc()方法在服务器启动时为整个缓冲池分配内存,通常,推荐innodb_buffer_pool_size值为系统内存的50%至75%。innodb_buffer_pool_size可以在服务器运行时动态配置。
- 在具有大量内存的系统上,你可以通过将缓冲池划分为多个缓冲池实例来提高并发性,其innodb_buffer_pool_instances系统变量用来定义缓冲池实例的数量。
- 缓冲池太小可能会导致过多的交换,因为页面从缓冲池中刷新后仅在短时间内可能再次需要。
- 缓冲池太大可能会因为内存竞争而导致交换。
2)innodb_additional_mem_pool_size
主要用于存放MySQL内部的数据结构和Innodb的数据字典,所以大小主要与表的数量有关,表越多值越大。庆幸的是这个值是可变的,如果不够用的话,MySQL会向操作系统申请的。该值默认8M,AWS所有规格都是统一的2M,由于这个值可以动态申请,所以我觉得2M应该是满足需求的。
3)innodb_log_buffer_size
这个是redolog的缓冲区,为了提高性能,MySQL每次写日志都将日志先写到一个内存Buffer中,然后将Buffer按照innodb_flush_log_at_trx_commit的配置刷到disk上。目前,我们所有实例的innodb_flush_log_at_trx_commit设置为了1,即每次事务提交都会刷新Buffer到磁盘,保证已经提交的事务,redo是不会丢的。AWS该值也设的是1(为了保证不丢数据),这个值的大小主要影响到刷磁盘的次数,设置的过小,Buffer容易满,就会增加fsync的次数,设置过大,占用内存。该值默认是8M,AWS所有规格统一128M,我觉得目前每次提交都会刷buffer,所以除非有大事务的情况,一般buffer不太可能被占满,所以没必要开的很大, 8M应该是满足需求的。
4)key_buffer_size
MyISAM表的key缓存,这个只对MyISAM存储引擎有效,所以对于我们绝大多数使用Innodb的应用,无需关心。
5)query_cache_size
MySQL对于查询的结果会进行缓存来节省解析SQL、执行SQL的花销,query_cache是按照SQL语句的Hash值进行缓存的,同时SQL语句涉及的表发生更新,该缓存就会失效,所以这个缓存对于特定的读多更新少的库比较有用,对于绝大多数更新较多的库可能不是很适用,比较受限于应用场景,所以AWS也把这个缓存给关了。我觉得这个值默认应该关闭,根据需求调整。
会话级别的内存消耗(连接私有内存)
上面这些就是MySQL主要的共享内存空间,这些空间是在MySQL启动时就分配的,但是并不是立即使用的。MySQL还有一部分内存是在用户连接请求到达时动态分配的,即每个MySQL连接都单独一个缓存,这部分缓存主要包括:
1)read_buffer_size
每个线程连续扫描时为扫描的每个表分配的缓存区的大小(字节)。如果进行多次连续扫描,可能还需要增加该值。默认值为1311072,只有当查询需要的时候,才分配read_buffer_size指定的全部内存。
2)read_rnd_buffer_size
当以任意顺序读取行时,可以分配随机读取缓冲区,通过该缓冲区读取行,以避免磁盘寻找。read_rnd_buffer_size系统变量决定缓冲器大小。
3)sort_buffer_size
每一个要做排序的请求,都会分到一个sort_buffer_size大的缓存,用于做order by和group by的排序,如果设置的缓存大小无法满足需要,MySQL会将数据写入磁盘来完成排序。因为磁盘操作和内存操作不在一个数量级,所以sort_buffer_size对排序的性能影响很大。由于这部分缓存是即使不用这么大,也会全部分配的,所以对系统内存分配开销是比较大的,如果是希望扩大的话,建议在会话层设置,默认值2M,AWS也是2M。...
|-摘 mysql 命令整理
更改密码mysqladmin -uroot -p原密码 password 新密码
更改密码
mysqladmin -uroot -p原密码 password 新密码...
|-原 【mysql】主键、普通索引、唯一索引和全文索引的比较
不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。(待验证 20200404)全文索引(适合在进行模糊查询的时候使用)MySQL从3.23.23版开始支持全文索引和全文检索。...
不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。(待验证 20200404)
全文索引(适合在进行模糊查询的时候使用)MySQL从3.23.23版开始支持全文索引和全文检索。在MySQL中,全文索引的索引类型为FULLTEXT。全文索引可以在CHAR、VARCHAR或者TEXT类型的列上创建。它可以通过CREATE TABLE命令创建,也可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。
MYSQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录 开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无 需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。
mysql在使用like查询中,能不能用到索引?在什么地方使用索引呢?
2
3
在使用like的时候,如果使用‘%%’,会不会用到索引呢?
EXPLAIN SELECT * FROM `user` WHERE username LIKE
'%ptd_%'
;
...
|-转 没有接收到要导入的数据。可能是文件名没有提交,也可能是文件大小超出 PHP 限制。
网上推荐的方法是:
修改PHP上传文件大小限制的方法
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为...
|-原 Mysql 报错'SQLSTATE[HY000] [1045] Access denied for user 'root'@'127.0.0.1' (using password: YES)
原因可能是dsn中的host信息错误,也可能是数据库名称错误,也可能是端口错,也可能是密码错误,等等
'dsn' => 'mysql:host=localhost;dbname=rageframe2',...
|-转 php连接mysql报错The server requested authentication method unknown to the client
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;FLUSH PRIVILEGES;
无效后再在MySql配置文件里修改default_authentication_plugin=mysql_native_password
php7.0连接mysql8.0报错:The server requested authentication method unknown to the client
是因为mysql80使用了新的密码验证插件:caching_sha2_password,而在php7.0并不支持这种方式。
解决办法:
1.升级php
2.修改mysql的配置文件,my.ini
找到mysqlId下的default-authentication-plugin配置项修改其值为mysql_native_password
default_authentication_plugin=mysql_native_password
重启mysql
然后在win+r输入cmd进入命令行模式
cd D:\Dsware\mysql\bin (把MySQL安装的路径输入);
再mysql -u root -p回车,输入密码:...
|-原 Mysql登录提示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
先在电脑上看服务开启了没,Windows在计算机管理里面的服务里看下,这里看到有两个版本的,而且状态都没启动,肯定登录不上了。现在想办法删除掉一个版本,或者两个版本都删除了。
...
|-原 Mysql报错SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\x8D\xE5\x86...'
执行Yii::$app->db->createCommand($sql)->execute() ;报错,不知道怎么解决
Mysql报错SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\x8D\xE5\x86...' for column 'title' at row 1 // The SQL being executed was: INSERT INTO w_gather (title, url, notes, search_key,search_domain )...
|-摘 mysql数据库操作 报错 #1030 - Got error 176 "Read page with wrong checksum"from storage engine Aria
在名为mysql的数据库中,勾选db表。在下方选中项位置选择“修复表”,OK。
您的 SQL 语句已成功运行。 REPAIR TABLE `db`;
之后在执行数据库操作,比如更改表备注等,正常的话就不会有这个报错了...
|-转 Linux系统彻底卸载MySQL数据库
发布于2019-08-28 12:15:55阅读12.2K
一、首先查询系统是否安装了MySQL
rpm -qa | grep -i mysql
输出结果表示,我安装的MySQL Server,Client都是5.6.44的,因为我系统支持的版本是要5.7+的版本,所以不得不卸载重装
二、关闭MySQL服务
查看MySQL服务运行状态:
service mysql status
如下图所示服务正在运行中:
停止MySQL服务:
service mysql stop
三、查看MySQL对应的文件夹
find / -name mysql
输出结果为:
/etc/selinux/targeted/active/modules/100/mysql /etc/logrotate.d/mysql /var/lib/mysql /var/lib/mysql/mysql /usr/share/mysql /usr/bin/mysql /usr/lib64/mysql
四、卸载并删除MySQL安装的组键服务
我的MySQL组件在刚开始的时候就已经查询了,主要就是下面这几个(所以使用 rpm -ev删除对应组件即可):
rpm -ev mysql-community-common-5.6.44-2.el7.x86_64 rpm -ev mysql-community-release-el7-5.noarch rpm -ev mysql-community-client-5.6.44-2.el7.x86_64 rpm -ev mysql-community-server-5.6.44-2.el7.x86_64 rpm -ev mysql-community-libs-5.6.44-2.el7.x86_64
在卸载服务是遇到了三个组件服务无法卸载问题,提示缺少依赖postfix-2:2.10.1-7.el7.x86_64:...
|-转 Linux下mysql5.7忘记root密码的解决方法
一、首先更改my.cnf的配置文件,并重启mysql
在my.cnf文件中的[mysqld] 下加入下面一行,其余不做改变。
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables
[root@localhost ~]# systemctl restart mysqld
二、登录MySQL,此时不需要输入密码,直接回车即可
mysql -uroot -p
三、切换到mysql数据库,查询user表的结构,这里有需要的字段。
在MySQL5.7版本中mysql数据库下已经没有password这个字段了,password字段改成了authentication_string字段。
mysql> use mysql;
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> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+------- +
| Field | Type | Null | Key | Default | Extra
|+------------------------+-----------------------------------+------+-----+-----------------------+------- +
| Host | char(60) | NO | PRI | |
|| User | char(32) | NO | PRI | |
|| Select_priv | enum(N,Y) | NO | | N |
|| Insert_priv | enum(N,Y) | NO | | N |
|| Update_priv | enum(N,Y) | NO | | N |
|| Delete_priv | enum(N,Y) | NO | | N |
|| Create_priv | enum(N,Y) | NO | | N |
|| Drop_priv | enum(N,Y) | NO | | N |
|| Reload_priv | enum(N,Y) | NO | | N |
|| Shutdown_priv | enum(N,Y) | NO | | N |
|| Process_priv | enum(N,Y) | NO | | N |
|| File_priv | enum(N,Y) | NO | | N |
|| Grant_priv | enum(N,Y) | NO | | N |
|| References_priv | enum(N,Y) | NO | | N |
|| Index_priv | enum(N,Y) | NO | | N |
|| Alter_priv | enum(N,Y) | NO | | N |
|| Show_db_priv | enum(N,Y) | NO | | N |
|| Super_priv | enum(N,Y) | NO | | N |
|| Create_tmp_table_priv | enum(N,Y) | NO | | N |
|| Lock_tables_priv | enum(N,Y) | NO | | N |
|| Execute_priv | enum(N,Y) | NO | | N |
|| Repl_slave_priv | enum(N,Y) | NO | | N |
|| Repl_client_priv | enum(N,Y) | NO | | N |
|| Create_view_priv | enum(N,Y) | NO | | N |
|| Show_view_priv | enum(N,Y) | NO | | N |
|| Create_routine_priv | enum(N,Y) | NO | | N |
|| Alter_routine_priv | enum(N,Y) | NO | | N |
|| Create_user_priv | enum(N,Y) | NO | | N |
|| Event_priv | enum(N,Y) | NO | | N |
|| Trigger_priv | enum(N,Y) | NO | | N |
|| Create_tablespace_priv | enum(N,Y) | NO | | N |
|| ssl_type | enum(,ANY,X509,SPECIFIED) | NO | | |
|| ssl_cipher | blob | NO | | NULL |
|| x509_issuer | blob | NO | | NULL |
|| x509_subject | blob | NO | | NULL |
|| max_questions | int(11) unsigned | NO | | 0 |
|| max_updates | int(11) unsigned | NO | | 0 |
|| max_connections | int(11) unsigned | NO | | 0 |
|| max_user_connections | int(11) unsigned | NO | | 0 |
|| plugin | char(64) | NO | | mysql_native_password |
|| authentication_string | text | YES | | NULL |
|| password_expired | enum(N,Y) | NO | | N |
|| password_last_changed | timestamp | YES | | NULL |
|| password_lifetime | smallint(5) unsigned | YES | | NULL |
|| account_locked | enum(N,Y) | NO | | N |
|+------------------------+-----------------------------------+------+-----+-----------------------+------- +
45 rows in set (0.00 sec)
把这个复制下来,修改密码时会用到,当然也可以手打。 ...
|-转 ERROR 1130 (HY000): Host '127.0.0.1' is not allowed to connect to this MySQL
ERROR 1130 (HY000): Host '127.0.0.1' is not allowed to connect to this MySQL server
MySQL 登录时出现不允许 127.0.0.1 登录的错误,是因为 MySQL 库的 User 表中的 Host 字段没有授权用户登录。
解决这个问题需要分两种情况。
情况一是安装 MySQL 后第一次使用 root 用户和初始密码登录 MySQL 数据库时出现 Host is not allowed to connect to this MySQL server
检查配置文件 my.ini 的 [mysqld] 下面是否有 skip-name-resolve, 如果有,把它删除掉或者注释掉。
如果以 mysqld.exe 进程形式启动而不是以服务的形式安装 MySQL,检查启动 mysqld.exe 的参数中是否有--skip-name-resolve,如果有,把它删除掉。
重新启动 MySQL 数据库以后,再次以 root 用户和初始密码登录 MySQL 数据库,运行以下 SQL 语句,将 root 用户的 Host 字段设置为%.
USE `mysql`; UPDATE `User` SET `Host`='%' WHERE `User`='root';
如果出现 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 的错误,需要在执行以上 SQL 前执行以下 SQL 语句修改密码。其中的 YOUR_OWN_PASSWORD 是设置的新密码,请替换成你自己的新密码。...
|-原 mysql创建数据类型为JSON时,显示的longtext数据类型
为了兼容传统SQL语法,MariaDB 10和MySQL5.7支持原生JSON格式,即关系型数据库和文档型NoSQL数据库集于一身。
mysql创建类型为JSON时,显示的longtext数据类型,在mysql看了版本也是对的...