在本文中,我们将给您介绍关于mysql出现ERROR1819(HY000)的解决方法的详细内容,并且为您解答mysql报错1819的相关问题,此外,我们还将为您提供关于LinuxMySQl5.7.17
在本文中,我们将给您介绍关于mysql出现ERROR 1819 (HY000)的解决方法的详细内容,并且为您解答mysql报错1819的相关问题,此外,我们还将为您提供关于Linux MySQl 5.7.17 MySQL ERROR 1366 (HY000):Incorrect string value 解决方法、mac 下的 mysql 报错:ERROR 1045 (28000) 和 ERROR 2002 (HY000) 的解决办法、MYSQL ERROR 1194 (HY000)、mysql ERROR 2002 (HY000): ''/tmp/mysql.sock'' 问题解决的知识。
本文目录一览:- mysql出现ERROR 1819 (HY000)的解决方法(mysql报错1819)
- Linux MySQl 5.7.17 MySQL ERROR 1366 (HY000):Incorrect string value 解决方法
- mac 下的 mysql 报错:ERROR 1045 (28000) 和 ERROR 2002 (HY000) 的解决办法
- MYSQL ERROR 1194 (HY000)
- mysql ERROR 2002 (HY000): ''/tmp/mysql.sock'' 问题解决
mysql出现ERROR 1819 (HY000)的解决方法(mysql报错1819)
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,出现这个问题怎么办?不用着急,下面给出答案。
为了加强安全性,MysqL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/MysqLd.log。
一般可通过log_error设置
MysqL> select @@log_error; +---------------------+ | @@log_error | +---------------------+ | /var/log/MysqLd.log | +---------------------+ 1 row in set (0.00 sec)
可通过# grep "password" /var/log/MysqLd.log 命令获取MysqL的临时密码
用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
MysqL> select user(); ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改为一个简单的密码,会报以下错误:
MysqL> ALTER USER USER() IDENTIFIED BY '12345678'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改validate_password_policy参数的值
MysqL> set global validate_password_policy=0; Query OK,0 rows affected (0.00 sec)
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
MysqL> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 8 | +----------------------------+ 1 row in set (0.00 sec)
validate_password_length参数默认为8,它有最小值的限制,最小值为:
validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
其中,validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。
这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。如下所示:
MysqL> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 8 | +----------------------------+ 1 row in set (0.00 sec) MysqL> set global validate_password_length=1; Query OK,0 rows affected (0.00 sec) MysqL> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 4 | +----------------------------+ 1 row in set (0.00 sec)
如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。
MysqL> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 4 | +----------------------------+ 1 row in set (0.00 sec) MysqL> select @@validate_password_mixed_case_count; +--------------------------------------+ | @@validate_password_mixed_case_count | +--------------------------------------+ | 1 | +--------------------------------------+ 1 row in set (0.00 sec) MysqL> set global validate_password_mixed_case_count=2; Query OK,0 rows affected (0.00 sec) MysqL> select @@validate_password_mixed_case_count; +--------------------------------------+ | @@validate_password_mixed_case_count | +--------------------------------------+ | 2 | +--------------------------------------+ 1 row in set (0.00 sec) MysqL> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 6 | +----------------------------+ 1 row in set (0.00 sec)
当然,前提是validate_password插件必须已经安装,MysqL5.7是默认安装的。
那么如何验证validate_password插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。
MysqL> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_dictionary_file | | | validate_password_length | 6 | | validate_password_mixed_case_count | 2 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+ 6 rows in set (0.00 sec)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
Linux MySQl 5.7.17 MySQL ERROR 1366 (HY000):Incorrect string value 解决方法
MySQL ERROR 1366 (HY000):Incorrect string value,在往数据库中插入中文的时候会出现。
这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在我的环境中配置文件是不允许修改,或者说和其他版本的不同。
大家都知道中文常用的编码方式是 gbk 或者 utf-8。我建议是使用 utf-8 这种编码方式,因为大势所趋。
我们有时候设置了 mysql 的配置文件,而创建出来的 database ,table 的 character 任然为默认的 latin1。
我们可以通过 show create database/table database_name/table_name;来查看所创的库和表的 character。会出现 ERROR 1366 错误的,编码上就可能存在问题。如果编码问题,那一下内容就不用看了,我的这个笔记帮不了你。
解决方法有好几个,我也是百度了很久,把两个成功的方法罗列在下面,方便自己方便他人。
方法一:在创建数据的时候设置好 character ,这样再创建 table 的时候会和 database 的编码方式相同。
CREATE DATABASE <DATABASE_NAME> CHARACTER SET <CODE>;
当然如果 database 创建的时候忘了设置,在创建表的时候任然可以设置 character 来补救。
CREATE TABLE <TABLE_NAME> (.......) CHARACTER SET <CODE>;
方法二:如果你很不辛的在创建 database 和 table 的时候都忘了设置 character,那就可以使用方法二
alter table <tbname> convert to charset gbk;
或者
alter table <tbname> convert to charset utf8;
---------------------
作者:DSpank
来源:CSDN
原文:https://blog.csdn.net/woainishmeng/article/details/67638617
版权声明:本文为博主原创文章,转载请附上博文链接!
mac 下的 mysql 报错:ERROR 1045 (28000) 和 ERROR 2002 (HY000) 的解决办法
<divid="output_wrapper_id"><blockquote> <p> 微信公众号:<strong><a href="https://www.cnblogs.com/ly803744/p/10007221.html"> 数据运营人 </a></strong><br > 本系列为博主的读书学习笔记,如需转载请注明出处。</p> </blockquote> <h3 id="hmacmysqlerror104528000"><span>Mac 下 mysql 报错:ERROR 1045 (28000)</span><span> </span></h3> <p> 今天在安装 MySQL 之后,一直报错:ERROR 1045 (28000): Access denied for user ''root''@''localhost'',通过寻找了大量的博客,找到的解决该问题的方法。</p> <h4 id="h"><span> 解决办法:</span></h4> <blockquote> <h5 id="h1macmysql"><span>1. 首先关闭 Mac 下面的 MySQL</span></h5> <ul> <li><span> 右上角的苹果 - 系统偏好设置 - 最下面的 mysql - 关闭 mysql 服务 </span></li> </ul> <h5 id="h2"><span>2. 两个命令行,分别执行:</span></h5> <ul> <li><span>cd /usr/local/mysql/bin</span></li> <li><span>sudo su</span></li> </ul> <h5 id="h3sh32"><span>3. 然后便可以看到终端命令变成这个开头: sh-3.2#,输入一下命令(# 号之后的)</span></h5> <ul> <li>sh-3.2# ./mysqld_safe --skip-grant-tables &<br><strong> 回车以禁止 mysql 验证功能,偏好设置中的 mysql 状态会变成 running</strong></li> </ul> <h5 id="h4"><span>4. 现在打开一个新的终端,输入以下命令:</span></h5> <ul> <li>mysql<br > 这个时候你发现有 mysql 开头的命令了,恭喜你,你可以无密码登录数据库了。</li> </ul> <h5 id="h5"><span>5. 修改密码,也是两个命令行(不要忘记命令后的分号)</span></h5> <ul> <li><span>flush privileges;</span></li> <li>set password for ''root''@''localhost'' = password (''123456'');<br><strong>password (''123456'') 中的 123456 为新密码,密码修改成功,可以正常登入了。</strong></li> </ul> <h5 id="h6mysql"><span>6. 然后启动 MySQL,输入命令 </span></h5> <ul> <li>mysql -u root -p<br > 输入之前设置的密码 123456,就能使用密码了。</li> </ul> </blockquote></div>
MYSQL ERROR 1194 (HY000)
操作系统文件限制大小导致 MYSQL ERROR 1194 (HY000): Table is marked as crashed and should be repaired 问题处理
同事反馈应用在执行查询某张表时候报
ERROR 1194 (HY000): Table is marked as crashed and should be repaired
错误
mysql> select * from ims_stat_msg_history where module=''basic'' and message=''0'' and createtime>=UNIX_TIMESTAMP(''2015-03-04'') LIMIT 0, 10;ERROR 1194 (HY000): Table ''ims_stat_msg_history'' is marked as crashed and should be repaired
通过网络搜索得出的大概问题原因为索引页损坏或表出现错误,网络上提供2种解决方案
使用myisamchk 命令进行修复
myisamchk -c -r /var/lib/mysql/wx/ims_stat_msg_history
.使用mysql 命令
repair table ims_stat_msg_history
进行修复.通过使用上面两种解决方案,此问题依然存在,通过核查表发现表大小刚好为2G(1073741312/1024/1024)*2
-rw-rw---- 1 mysql mysql 1073741312 Mar 04 17:59 ims_stat_msg_history.MYD-rw-rw---- 1 mysql mysql 321451008 Mar 04 18:22 ims_stat_msg_history.MYI-rw-rw---- 1 mysql mysql 8937 Mar 28 2014 ims_stat_msg_history.frm
随着这条线索核查操作系统的limit (
/etc/security/limits
) 发现default有设置fssize 为2097151
和文件已经达到的大小2G刚好一致,这里我将此参数改为-1 ,然后重新切换一下用户环境后重启mysql
重启mysql后,再次执行repair table ims_stat_msg_history
进行修复,经过修复后测试,表恢复正常!
总结:
对于网络上提供的解决方案,在不十分清楚的情况下,需要反复确认操作,最好进行先备份
对于使用了修复方案还是存在问题,需要多扩展思路和方向进行解决
mysql ERROR 2002 (HY000): ''/tmp/mysql.sock'' 问题解决

mysql ERROR 2002 (HY000): ''/tmp/mysql.sock'' 问题解决
mysql 突然打不开了报出下面这个错:
Error: Can''t connect to local MySQL server through socket ''/tmp/mysql.sock'' (2)
一直用的好好的,突然就不能用了,然后在网上搜了一圈,什么改配置 my.cnf, 什么改软连接啊,换用 5.7 版本,都用了一次,结论是都不对.
我要用 mysql, 所以只能硬来解决问题了。
升级以后的 mysql 版本是:
mysql: stable 8.0.16 (bottled) [pinned at 8.0.16]
网上讲的大部分说的都是 5.7 之类的版本,我看我本地根本没有网上说的文件夹
完全删除后碰到的问题
因为上面讲到的都没用,我想是不是完全删除以后就好了,然后就网上搜了怎么完全删除 mysql
Remove MySQL completely
brew services stop mysql
ps -ax | grep mysql
kill mysql
brew remove mysql
brew cleanup
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
下面的在我的文件夹中完全没有
subl /etc/hostconfig`
# Remove the line MYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
重启
找了好几篇,这个是讲的比较全的。最重要的是这行
sudo rm -rf /usr/local/var/mysql
重新安装 brew install mysql
完全就没有这个文件夹了。
使用 mysql.server start
, 碰到的就是这个文件夹里的东西找不到,懵掉。
Starting MySQL
./usr/local/Cellar/mysql/8.0.16/bin/mysqld_safe: line 144: /usr/local/var/mysql/jindeMacBookPro.err: Permission denied
/usr/local/Cellar/mysql/8.0.16/bin/mysqld_safe: line 144: /usr/local/var/mysql/jindeMacBookPro.err: Permission denied
/usr/local/Cellar/mysql/8.0.16/bin/mysqld_safe: line 199: /usr/local/var/mysql/jindeMacBookPro.err: Permission denied
/usr/local/Cellar/mysql/8.0.16/bin/mysqld_safe: line 144: /usr/local/var/mysql/jindeMacBookPro.err: Permission denied
ERROR! The server quit without updating PID file (/usr/local/var/mysql/jindeMacBookPro.pid).
解决没有文件夹
没有 pid 文件,那么就搜这问题解决嘛
MySql server startup error ''The server quit without updating PID file ''
其中看到这里
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
找了一圈完全没找 mysql_install_db
这个命令。
这个命令应该是低版本 mysql 初始化使用的初始化命令,反正我们没有暂时不管。
搜了半天应该是使用 mysqld
, 这个是新版本初始化使用的命令
mysqld --initialize-insecure
MySQL 5.7 参考手册 - 2.10.1 初始化数据目录
使用上面这个命令,那么就会帮你创建 /usr/local/var/mysql
目录了
解决 /tmp/mysql.sock
现在这个目录有了,那么继续运行
mysql.server start
然后回到了远点,依然报
Error: Can''t connect to local MySQL server through socket ''/tmp/mysql.sock'' (2)
绕了一圈又回到了原点,那么怎么解决问题,那么看哪里能看到报出来的详细问题呢,就是找错误日志咯。
cd /usr/local/var/mysql
cat jindeMacBookPro.err
错误日志就在 local_computer.err
, 也就是你电脑这个位置 xxx.err
文件
如果只想找错,也可以使用
cat jindeMacBookPro.err | grep ''\[ERROR\]''
然后又看到了这几行错
2019-05-07T11:11:09.113601Z 0 [ERROR] [MY-010273] [Server] Could not create unix socket lock file /tmp/mysql.sock.lock.
2019-05-07T11:11:09.113613Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
2019-05-07T11:11:09.114096Z 0 [ERROR] [MY-010119] [Server] Aborting
不能创建这个文件,不能创建这个文件大部分原因是权限不足。
默认安装后这个文件是在 /tmp
目录下,那么我就给权限嘛。
chmod 777 /tmp
但是看文档下面这个权限的也可以,但是没试,有兴趣的可以试一下
chmod 750 mysql-files
好了创建以后,继续启动 mysql.server start
, 然后启动成功
Starting MySQL
.. SUCCESS!
启动成功,那么应该可以连接了吧,然而结果报出:
ERROR 1045 (28000): Access denied for user ''jinzhang''@''localhost'' (using password: NO)
连接不成功,继续解决问题。
拒绝用户问题解决
拒绝用户,那么就创建用户,使用 brew info mysql
时,看到这个
We''ve installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
启动命令
$ mysql_secure_installation
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
完整打印是这个,都选 Y 就好
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: root
Please set the password for root here.
New password:
Re-enter new password:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
''localhost''. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named ''test'' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
然后使用 brew services start mysql
, 使用 brew 启动 mysql 进行管理,然后登陆
mysql -u root -proot
成功进入 mysql
可视化软件问题
上面完了以后,就好了么,事情没有这么简单,在用可视化的时候,又报错了。
Unable to connect to host 127.0.0.1, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).
MySQL said: Authentication plugin ''caching_sha2_password'' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
这又是什么错呢,继续搜:
Authentication plugin ''caching_sha2_password'' cannot be loaded
可以通过使用以下 Alter 命令更改用户来更改用户密码的加密:
ALTER USER ''username''@''ip_address'' IDENTIFIED WITH mysql_native_password BY ''password'';
那么我要怎么改这个命令呢,使用:
首先在命令行使用 mysql 命令进入 mysql, 然后输入下面这个命令,账号 / 密码:root/root
ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''root'';
然后选择可视化程序,测试成功进入。
整个排错过程记录一下,防止下次碰到同样的问题,也希望可以帮到碰到同样问题的同学
PS: 觉得不错的请点个赞吧!! (ง・̀_・́)ง
今天关于mysql出现ERROR 1819 (HY000)的解决方法和mysql报错1819的讲解已经结束,谢谢您的阅读,如果想了解更多关于Linux MySQl 5.7.17 MySQL ERROR 1366 (HY000):Incorrect string value 解决方法、mac 下的 mysql 报错:ERROR 1045 (28000) 和 ERROR 2002 (HY000) 的解决办法、MYSQL ERROR 1194 (HY000)、mysql ERROR 2002 (HY000): ''/tmp/mysql.sock'' 问题解决的相关知识,请在本站搜索。
本文标签: