• 关于 更改mysql_root密码 的搜索结果

回答

以root用户登录MySQL控制台: root@9532f0da1a2a:/# mysql -u root -pPASSWORD 并使用其中的密码更改身份验证插件: mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD'; Query OK, 0 rows affected (0.08 sec) 您可以在《 MySQL 8.0参考手册》上阅读有关首选身份验证插件的更多信息。 https://dev.mysql.com/doc/refman/8.0/zh-CN/upgrading-from-previous-series.html#upgrade-caching-sha2-password 它在docker化环境中完美运行: docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -p 3306:3306 -d mysql:latest docker exec -it mysql bash mysql -u root -pPASSWORD ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD'; exit exit docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest 因此,您现在可以使用root / PASSWORD 登录http:// localhost:8080上的phpMyAdmin。 mysql / mysql服务器 如果您正在使用mysql / mysql-server docker image 但是请记住,这只是开发环境中的“快速而肮脏的”解决方案。更改MySQL Preferred Authentication Plugin是不明智的。 docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';" docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest 在2018年10月4日更新了解决方案 通过取消注释中的default_authentication_plugin=mysql_native_password设置来更改MySQL默认身份验证插件 /etc/my.cnf 使用风险自负 docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf docker stop mysql; docker start mysql docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest 在2019年1月30日更新了解决方法 docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';" docker stop mysql; docker start mysql docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest default_authentication_plugin来源:stack overflow

保持可爱mmm 2020-05-16 20:58:55 0 浏览量 回答数 0

回答

修改配置之前为嘛不手动保存一下快照呢,出问题也好回滚啊。。。 ------------------------- 1. 停止MySQL服务,并在mysql配置文件my.cnf中添加skip-grant-tables参数到[mysqld]配置块中2. 启动MySQL服务,添加root用户,并授予权限,启动数据库后,可以以密码登陆,并插入一条添加用户名为root的命令,命令执行如下:   ./mysql.server start   ./mysql -p      insert into user set user=’root’,ssl_cipher=”,x509_issuer=”,x509_subject=”;   添加完成后,对该root用户更新权限,更新权限命令如下:   update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y', Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';   执行完成后,执行quit 退出数据库。3. 重启数据库并更新root密码执行完添加与更新root用户权限后,可以使用命令:./mysql.server restart  来重启数据库利用./mysql -p 命令无密码登陆进入数据库,执行以下命令:update mysql.user  set password=password('newpassword') where user='root'#将password()中的newpassword字符更改为你自己的密码执行完成后,记得刷新权限:4. 注释掉skip-grant-tables参数,重启数据库权限刷新完成后,修改mysql的配置文件my.cnf,注释或删除掉添加的skip-grant-tables参数,然后利用命令:./mysql.server restart  重启数据库即可flush privileges;5. 重启MYSQL就可以使用ROOT用户了。 ------------------------- 那你得把MySQL服务启动失败的错误日志贴出来啊 ------------------------- 回 5楼(nut) 的帖子 服务脚本中的路径和MySQL实际安装路径不一致

xninja 2019-12-02 01:09:17 0 浏览量 回答数 0

回答

某些系统,例如Ubuntu,mysql,默认情况下使用UNIX auth_socket插件。 基本上意味着:使用它的db_users,将由系统用户凭据 “认证” 。您可以root通过执行以下操作查看您的用户是否设置为: $ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> SELECT User, Host, plugin FROM mysql.user; +------------------+-----------------------+ | User | plugin | +------------------+-----------------------+ | root | auth_socket | | mysql.sys | mysql_native_password | | debian-sys-maint | mysql_native_password | +------------------+-----------------------+ 如您在查询中看到的,root用户正在使用auth_socket插件 有两种解决方法: 您可以设置root用户使用mysql_native_password插件 您可以db_user与自己创建一个新的system_user(推荐) 选项1: $ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart 选项2 :(用您拥有的用户名替换YOUR_SYSTEM_USER) $ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY ''; mysql> GRANT ALL PRIVILEGES ON . TO 'YOUR_SYSTEM_USER'@'localhost'; mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER'; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart 请记住,如果使用选项#2,则必须以系统用户名(mysql -u YOUR_SYSTEM_USER)连接到mysql。 注意:在某些系统上(例如Debian Stretch),“ auth_socket”插件称为“ unix_socket”,因此相应的SQL命令应为:UPDATE user SET plugin='unix_socket' WHERE User='YOUR_SYSTEM_USER'; 更新: 从@andy的评论看来,mysql 8.xx已更新/替换了,auth_socket因为caching_sha2_password我没有使用mysql 8.xx进行系统安装来测试此问题,但是上述步骤应该可以帮助您了解问题。这是答复: 自MySQL 8.0.4起,一项更改是新的默认身份验证插件为'caching_sha2_password'。新的“ YOUR_SYSTEM_USER”将具有此auth插件,您现在可以使用“ mysql -u YOUR_SYSTEM_USER -p”从bash shell登录,并在提示符下提供该用户的密码。不需要“更新用户SET插件”步骤。有关8.0.4默认身份验证插件更新,请参见https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/来源:stack overflow

保持可爱mmm 2020-05-10 20:38:36 0 浏览量 回答数 0

消息队列 RocketMQ 9.9元包月起

消息队列 RocketMQ 9.9元包月起,另含2000万次API 免费调用额度

回答

我有解决办法! 在步骤2)重置root密码时,还将auth插件更改为mysql_native_password: use mysql; update user set authentication_string=PASSWORD("") where User='root'; update user set plugin="mysql_native_password" where User='root'; # THIS LINE flush privileges; quit; 这使我能够成功登录! 完整代码解决方案 1.运行bash命令 1.首先,运行以下bash命令 sudo /etc/init.d/mysql stop # stop mysql service sudo mysqld_safe --skip-grant-tables & # start mysql without password enter -> go mysql -uroot # connect to mysql 2.然后运行mysql命令=>将其手动复制粘贴到cli use mysql; # use mysql table update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user flush privileges; quit; 3.运行更多的bash命令 sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start # reset mysql try login to database, just press enter at password prompt because your password is now blank mysql -u root -p 4.套接字问题(根据您的评论) 当您看到套接字错误时,社区提供了两种可能的解决方案: sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld sudo mysqld_safe --skip-grant-tables & (感谢@Cerin) 要么 mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld (感谢@Peter Dvukhrechensky) 盲径和可能的边缘错误 使用127.0.0.1代替localhost mysql -uroot # "-hlocalhost" is default 可能导致“文件丢失”或slt错误。 mysql -uroot -h127.0.0.1 效果更好。 跳过套接字问题 我发现了许多创建mysqld.sock文件,更改访问权限或对其进行符号链接的方法。毕竟这不是问题。 跳过my.cnf文件 问题也不存在。如果您不确定,这可能会对您有所帮助。来源:stack overflow

保持可爱mmm 2020-05-17 20:48:24 0 浏览量 回答数 0

回答

@mohammed,这通常归因于您的mysql数据库正在使用的身份验证插件。 默认情况下,由于某种原因,mysql 8的默认插件是auth_socket。应用程序通常会期望使用密码登录到数据库。 如果尚未更改mysql默认身份验证插件,则可以通过以下方法进行更改: 1.以root用户身份登录mysql 2.运行以下sql命令: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 用您的根密码替换“密码”。如果您的应用程序没有以root用户身份登录到数据库,请用应用程序使用的用户替换上述命令中的'root'用户。 来源:stack overflow

保持可爱mmm 2020-05-11 16:17:29 0 浏览量 回答数 0

问题

在 FreeBSD 11.2 里安装使用 nginx + php7.1(php-fpm) + mysql 5.7

dongshan8 2019-12-01 21:52:42 1959 浏览量 回答数 0

问题

Node.js无法通过MySQL 8.0进行身份验证?mysql

保持可爱mmm 2020-05-17 12:33:10 0 浏览量 回答数 1

回答

假设您使用的是Linux或Windows控制台: 提示输入密码: mysql -u -p < <filename.sql> 直接输入密码(不安全): mysql -u -p < <filename.sql> 例: mysql -u root -p wp_users < wp_users.sql mysql -u root -pPassword123 wp_users < wp_users.sql 也可以看看: 4.5.1.5。从文本文件执行SQL语句 注意:如果您在Windows上,则cd在执行命令之前,必须(更改目录)到CMD中的MySQL / bin目录。来源:stack overflow

保持可爱mmm 2020-05-17 18:38:32 0 浏览量 回答数 0

问题

在 FreeBSD 11 里安装使用 apache24 + php7.1(php-fpm) + mysql 5.7

dongshan8 2019-12-01 22:01:29 5355 浏览量 回答数 1

回答

FLUSH PRIVILEGES登录到MySQL终端时,请尝试使用该命令。如果这不起作用,请在MySQL终端中尝试以下命令集 $ mysql -u root mysql> USE mysql; mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit 使用您想要的任何密码更改出NEWPASSWORD。应该全部设置好! 更新:从MySQL 5.7开始,该password字段已重命名authentication_string。更改密码时,请使用以下查询来更改密码。所有其他命令保持不变: mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root'; 更新:在8.0.15(可能已经在该版本之前)上,PASSWORD()函数不起作用,如以下注释中所述。您必须使用: UPDATE mysql.user SET authentication_string='password' WHERE User='root';来源:stack overflow

保持可爱mmm 2020-05-11 16:58:31 0 浏览量 回答数 0

问题

在 FreeBSD 11.2 里安装 Magento2.3

dongshan8 2019-12-01 21:53:05 2416 浏览量 回答数 0

回答

我之前也是这样(安装的是mysql8.0)后来卸载重新安装5.7版本的,就没问题了 我的是8.0的版本,因为比较新的mysql采用新的保密方式所以旧的似乎不能用,改密码方式:usemysql;ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'你的密码';FLUSHPRIVILEGES; 首先卸载,然后重新安装 MYSQL数据库的权限不够,重新更改权限就可以 先用root登录MYSQL服务器,执行mysql>setpasswordforuser1@"localhost"=old_password('yourPassword');  原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上,原来的密码函数被改为old_password();这样使用password()生成的密码在旧的版本上的客户端就不好使了,而PHP中的MYSQL客户端都是3.23的(当然,mysqli的扩展除外),问题就在这了。望采纳 需要修改密码首先任务管理器,找到服务,mysql57停止它,然后cmd命令下进入mysql安装目录,是mysqlserver5.7下的bin目录下执行mysqld--skip-grant-tables有可能会出错,因为升级导致文件缺失,出错就先执行mysqld--initialize-insecure--user=mysql然后再打开一个cmd窗口,还是bin目录下,直接mysql进入,上一步的执行就是无密码登录,之后updatemysql.usersetauthentication_string=password('123456')whereuser='root'andHost='localhost';执行这条修改密码的命令,123456就是密码 然后重新打开mysql57服务应该就可以了 你这虽然设置了,但是没有保存 还没设置好帮帮我

爱吃鱼的程序员 2020-06-23 13:57:30 0 浏览量 回答数 0

回答

  使用方法:   1、启动控制台 单击wamp5图标->mysql->mysql控制台   2、输入密码(wamp5默认密码为空)按回车   3、mysql信息:   4、显示所有数据库   5、选择数据库 use dbname   6、显示表(show tables;)   命令大全   * mysql 链接服务器 mysql -h localhost  -u root -p   * show databsses 显示数据库   * use dbname  选择数据库   * show tables 显示数据表   create database 数据库名 建库   * drop database dbname 删除库   * delete database dbname 删除库   * create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]) 建表   * rename table 原表名 to 新表名 改表名   * update 表名 set 字段=新值,… where 条件  修改表中数据   * update 表名 set 字段名 = 新内容 更改表字段   * show character set 显示字符集   * show collation 显示字符集的校对   * character set 字符集名 计置字符集   * set names  计置字符集  character_set_client   客户端字符集   * character_set_connection  链接字符集   * character_set_results 返回字符集   * insert into dbname.tablename select fieldname from dbname.tablename; 从其他表导入数据 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:17:24 0 浏览量 回答数 0

问题

MySQL多实例配置问题:报错

kun坤 2020-06-08 11:06:25 2 浏览量 回答数 1

问题

自动将网站数据,数据库备份到OSS上

小罗flyto 2019-12-01 21:42:58 13384 浏览量 回答数 11

问题

centos7--LNMP搭建wordpress出错,非常困难,找不出原因!求大神帮忙一下,谢谢!

skyrainx 2019-12-01 19:46:26 124 浏览量 回答数 1

回答

源码安装:yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake编译安装:`[root@server182 ~]# groupadd mysql[root@server182 ~]# useradd -r -g mysql mysqlmysql-5.6.10.tar.gz下载:http://download.csdn.net/download/wormsnake/5116910[root@server182 ~]# tar -zxvf mysql-5.6.10.tar.gz[root@server182 ~]# cd mysql-5.6.10[root@server182 mysql-5.6.10]# cmake .[root@server182 mysql-5.6.10]# make && make install`默认情况下是安装在/usr/local/mysql `[root@server182 ~]# chown -R mysql.mysql /usr/local/mysql [root@server182 ~]# cd /usr/local/mysql/scripts[root@server182 ~]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data[root@server182 ~]# cd /usr/local/mysql/support-files[root@server182 support-files]# cp mysql.server /etc/rc.d/init.d/mysql[root@server182 support-files]# cp my-default.cnf /etc/my.cnf[root@server182 ~]# chkconfig -add mysql[root@server182 ~]# chkconfig mysql on[root@server182 ~]# service mysql start`Starting MySQL SUCCESS!修改密码mysqladmin -u root password '123456'登陆mysql -u root -p修改远程访问权限:1改表法如果你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"` mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; `2授权法例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话`GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;FLUSH PRIVILEGES;`

蛮大人123 2019-12-02 01:43:36 0 浏览量 回答数 0

回答

我的两个程序都遇到了相同的问题。我的错误是这样的: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 我花了几天时间解决这个问题。我已经测试了不同网站中提到的许多方法,但是没有一种有效。最后,我更改了代码,找出了问题所在。我将尝试向您介绍不同的方法,并在此处进行总结。 当我在互联网上寻找该错误的解决方案时,我发现有许多解决方案至少对一个人有用,但其他人则说这不适用于他们! 为什么有很多方法可以解决此错误? 似乎通常在连接到服务器时出现此错误。可能是因为错误的查询字符串或与数据库的连接过多。 因此,我建议您一个接一个地尝试所有解决方案,不要放弃! 这是我在互联网上找到的解决方案,对于每个解决方案,至少都有人用该解决方案解决了他的问题。 提示:对于需要更改MySQL设置的解决方案,可以参考以下文件: Linux:/etc/mysql/my.cnf或/etc/my.cnf(取决于Linux发行版和使用的MySQL软件包) Windows:C:** ProgramData ** \ MySQL \ MySQL Server 5.6 \ my.ini(请注意,它是ProgramData,而不是Program Files) 以下是解决方案: 更改“绑定地址”属性 取消注释“绑定地址”属性或将其更改为以下IP之一: bind-address =“ 127.0.0.1” 要么 绑定地址=“ 0.0.0.0” 注释掉“跳过网络” 如果您的MySQL配置文件中有“跳过网络”行,请在该行的开头添加“#”符号使其成为注释。 更改“ wait_timeout”和“ interactive_timeout” 将这些行添加到MySQL配置文件中: wait_timeout = 数字 Interactive_timeout = 数字 connect_timeout = 数字 确保Java没有将'localhost'转换为[::: 1]而不是[127.0.0.1] 由于MySQL可以识别127.0.0.1(IPv4)但不能识别::: 1(IPv6) 可以通过使用以下两种方法之一来避免这种情况: 选项#1:在连接字符串中使用127.0.0.1代替localhost,以避免将localhost转换为::: 1 选项#2:使用选项-Djava.net.preferIPv4Stack = true运行Java,以强制Java使用IPv4而不是IPv6。在Linux上,也可以通过运行(或将其放在/ etc / profile中: export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true" 检查操作系统代理设置,防火墙和防病毒程序 确保防火墙或防病毒软件没有阻止MySQL服务。 在Linux上暂时停止iptables。如果iptables配置错误,它们可能允许将tcp数据包发送到mysql端口,但阻止tcp数据包通过同一连接返回。 Redhat enterprise and CentOS systemctl stop iptables.service Other linux distros service iptables stop 在Windows上停止防病毒软件。 更改连接字符串 检查您的查询字符串。您的连接字符串应如下所示: dbName = "my_database"; dbUserName = "root"; dbPassword = ""; String connectionString = "jdbc:mysql://localhost/" + dbName + "?user=" + dbUserName + "&password=" + dbPassword + "&useUnicode=true&characterEncoding=UTF-8"; 确保您的字符串中没有空格。所有连接字符串应继续,且不包含任何空格字符。 尝试用回送地址127.0.0.1替换“ localhost”。也尝试将端口号添加到您的连接字符串中,例如: String connectionString = "jdbc:mysql://localhost:3306/my_database?user=root&password=Pass&useUnicode=true&characterEncoding=UTF-8"; 通常,MySQL的默认端口是3306。 不要忘记将用户名和密码更改为MySQL服务器的用户名和密码。 更新您的JDK驱动程序库文件 测试不同的JDK和JRE(例如JDK 6和7) 不要更改max_allowed_pa​​cket “ max_allowed_pa​​cket ”是MySQL配置文件中的一个变量,指示最大包大小,而不是最大包数。因此,这无助于解决此错误。 更改tomcat的安全性 将TOMCAT6_SECURITY =是更改为TOMCAT6_SECURITY =否 使用validationQuery属性 使用validationQuery =“ select now()”确保每个查询都有响应 自动重新连接 将此代码添加到您的连接字符串中: &autoReconnect=true&failOverReadOnly=false&maxReconnects=10 尽管这些解决方案都不适合我,但我建议您尝试一下。因为有些人按照以下步骤解决了他们的问题。 但是什么解决了我的问题? 我的问题是我在数据库上有很多SELECT。每次创建连接然后关闭它时。尽管我每次都关闭连接,但是系统面临许多连接,并给了我这个错误。我所做的是将连接变量定义为整个类的公共(或私有)变量,并在构造函数中对其进行了初始化。然后,每次我使用该连接时。它解决了我的问题,也大大提高了我的速度。 结论 没有简单独特的方法可以解决此问题。我建议您考虑自己的情况并选择上述解决方案。如果在程序开始时出现此错误,并且根本无法连接到数据库,则连接字符串可能有问题。但是,如果在与数据库进行多次成功交互之后出现此错误,则问题可能出在连接数上,您可能会考虑更改“ wait_timeout”和其他MySQL设置,或者重写您的代码以减少连接数。来源:stack overflow

保持可爱mmm 2020-05-08 10:55:29 0 浏览量 回答数 0

问题

云服务器Windows系统安装配置ApachePHPMySQL详细教程

魏无忌 2019-12-01 21:00:20 13504 浏览量 回答数 6

回答

在Ubuntu Linux上设置/更改/重置MySQL根密码。在终端中输入以下行。 停止MySQL服务器: sudo /etc/init.d/mysql stop 开始mysqld配置:sudo mysqld --skip-grant-tables & 在某些情况下,您必须创建第/var/run/mysqld一个: sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld 跑: sudo service mysql start 以root身份登录到MySQL: mysql -u root mysql YOURNEWPASSWORD用您的新密码替换: UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD') WHERE User = 'root'; FLUSH PRIVILEGES; exit; 注意:在某些版本中,如果passwordcolumn不存在,则可能要尝试: UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root'; 注意:此方法不被认为是重置密码的最安全方法,但是它可以工作。来源:stack overflow

保持可爱mmm 2020-05-11 10:36:58 0 浏览量 回答数 0

问题

MySQL用户数据库没有密码列-在OSX上安装MySQL?mysql

保持可爱mmm 2020-05-17 09:35:25 0 浏览量 回答数 1

回答

在 ECS Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,本文列举一些常见问题的解决办法。 注意:以下错误日志提示,都是查看 MySQL 错误日志得到,查看方法如下: 查看下 MySQL 配置文件 my.cnf 中有记录,日志记录在 /alidata/log/mysql/error.log 下 20150507184311.png MySQL 配置文件 my.cnf 权限问题导致无法启动,错误提示:World-writable config file '/etc/my.cnf' is ignored Binlog 丢失导致无法启动,错误日志: File './mysql-bin.000001' not found Binlog 无法读取导致无法启动,错误日志:Failed to open log (file './mysql-bin.000001', errno 13) 不能创建 PID 导致无法启动,错误日志:Can't start server: can't create PID file: No such file or directory 不能创建临时文件导致无法启动,错误日志:mysqld: Can't create/write to file '/tmp/ibfguTtC' (Errcode: 13) MySQL 服务无法识别导致无法启动,错误提示:mysqld: unrecognized service MySQL 配置了过大的内存导致无法启动,错误日志:InnoDB: Cannot allocate memory for the buffer pool MySQL 启动参数过多导致无法启动,错误提示:Too many arguments (first extra is 'start') MySQL 目录权限问题导致无法启动,错误日志:File './mysql-bin.index' not found (Errcode:13 - Permission denied) MySQL 未初始化导致无法启动,错误提示:can't open the mysql.plugin table MySQL 启动成功但未监听端口 MySQL ibdata1权限问题导致无法启动,错误日志:InnoDB Operating system error number 13 in a file operation 磁盘空间满导致 MySQL 无法启动 进程残留导致 MySQL 无法启动 MySQL 服务自动停止 MySQL 配置文件 my.cnf 权限问题导致无法启动,错误提示:World-writable config file '/etc/my.cnf' is ignored 问题描述 ECS Linux MySQL 无法启动,报如下错误: Snip20160218_7.png 问题分析 查看 MySQL 错误日志发现如下错误(提示 MySQL 库的 host 表无法打开): Snip20160218_8.png 查看 /etc/my.cnf 配置文件: Snip20160218_10.png 到 MySQL 数据库所在目录查看表是否存在: Snip20160218_16.png 发现 MySQL 库的 host 表是存在的,那为什么会提示不存在呢? 问题应该出在 /etc/my.cnf 文件上,从第一个截图也可以看到警告信息(/etc/my.cnf 被忽视) 查看文件权限: Snip20160218_13.png 原来文件权限被设置成 777,因安全问题导致被 MySQL 忽视,所以去查询默认的数据库存放路径,没有 MySQL 库的 host 表导致启动失败: Snip20160218_17.png 解决办法 将 /etc/my.cnf 权限修改成 644,然后启动 MySQL 即可: Snip20160218_18.png Binlog 丢失导致无法启动,错误日志: File './mysql-bin.000001' not found 问题描述 清理磁盘空间时删除了全部 binglog 日志,导致 MySQL 无法启动: 1.JPG MySQL 的 errorlog 里面可以看到错误信息: 1.JPG 解决办法 1、注释 Binlog 配置恢复方法: 编辑 /etc/my.cnf,找到 log-bin=mysql-bin,在前面加#将其注释暂时关闭 binlog,保存修改后启动 MySQL 服务 注意:my.cnf 配置文件路径以实际调用路径为准 2.JPG 2、清理 Binlog 索引恢复方法: 查看 Binlog 索引文件 test002.jpg 所以,需要清空 mysql-bin.index 索引文件后即可,清理方法可以通过 vi 或者 echo 命令清理,如下: echo “” > mysql-bin.index 去除 Binlog 日志索引文件中调用的内容后,测试启动成功。 [root@test var]# /etc/init.d/mysqld startStarting MySQL. SUCCESS! 3、文件还原恢复方法: 提交工单,由我们帮您挂载最近的快照,您从快照磁盘复制最新的 binlog 文件到 mysql 的数据目录下,再重启 MySQL 服务即可。 注意:提交工单时请说明需要挂载快照的磁盘和快照。 正确清理 MySQL Binlog 方法请参考如下命令: mysql -uroot -p 密码use mysql;purge binary logs to ‘mysql-bin.011113’; 注意:mysql-bin.011113 是 Binlog 文件名,mysql-bin.011113 不会被删除,而 mysql-bin.011113 之前的日志都会被删除。 3.JPG Binlog 无法读取导致无法启动,错误日志:Failed to open log (file './mysql-bin.000001', errno 13) 问题描述 MySQL 无法启动报错: Starting MySQL…The server quit without updating PID file [FAILED]a/server/mysql/data/test.pid). 查看 MySQL 的错误日志会提示如下信息: 110711 00:00:00 [ERROR] Failed to open log (file './mysql-bin.000001', errno 13) 这说明 Binlog 日志无法去读,一般由于磁盘空间满,或者权限不正确导致。 解决办法 首先查询磁盘空间: [root@test /]# df -hFilesystem Size Used Avail Use% Mounted on/dev/xvda1 20G 2.7G 17G 14% /tmpfs 498M 0 498M 0% /dev/shm/dev/xvdb1 30G 19G 9.7G 66% /alidata 查看磁盘空间没有满,则需要 ls 命令检查文件权限: -r———— 1 root root 601 Jul 28 2014 mysql-bin.000001 这说明文件属主和权限不正确,需要执行如下两条命令修复(mysql-bin.000001 这个日志文件需要换成具体文件名): chmod 660 mysql-bin.000001chown mysql.mysql mysql-bin.000001 修改正确后已经可以正常启动mysql 不能创建 PID 导致无法启动,错误日志:Can't start server: can't create PID file: No such file or directory 问题描述 MySQL 启动报错信息如下: Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details、 [FAILED] 根据提示,使用 systemctl status mysqld.service 和 journalctl -xe 查看服务启动失败的原因。 [root@ ~]# systemctl status mysqld.servicemysqld.service - SYSV: MySQL database server.Loaded: loaded (/etc/rc.d/init.d/mysqld)Active: failed (Result: exit-code) since Wed 2016-01-20 18:26:57 CST; 40s agoDocs: man:systemd-sysv-generator(8)Process: 2979 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server….Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start.Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld: [FAILED]Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server..Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state.Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed.[root@ ~]# journalctl -xeUnit session-2.scope has begun starting up.Jan 20 18:26:48 spark01 sshd[2916]: pam_unix(sshd:session): session opened for user spark by (uid=0)Jan 20 18:26:52 spark01 su[2944]: (to root) spark on pts/1Jan 20 18:26:52 spark01 su[2944]: pam_unix(su-l:session): session opened for user root by spark(uid=1000)Jan 20 18:26:56 spark01 polkitd[909]: Registered Authentication Agent for unix-process:2974:117137 (system bus name :1.25Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server….— Subject: Unit mysqld.service has begun start-up— Defined-By: systemd— Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel—— Unit mysqld.service has begun starting up.Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start.Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld: [FAILED]Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server..— Subject: Unit mysqld.service has failed— Defined-By: systemd— Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel—— Unit mysqld.service has failed.—— The result is failed.Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state.Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed.Jan 20 18:26:57 spark01 polkitd[909]: Unregistered Authentication Agent for unix-process:2974:117137 (system bus name :1. 这些信息并不能提供服务启动失败的真正原因。 查看 MySQL 的告警日志: 2016-01-20T10:00:19.935771Z 0 [ERROR] /usr/sbin/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 2 - No such file or directory)2016-01-20T10:00:19.935795Z 0 [ERROR] Can’t start server: can’t create PID file: No such file or directory160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 解决办法 MySQL 服务在启动的时候,不能创建 pid 文件。 在终端看一下该目录是否存在,如果不存在,手动创建: [root@ ~]# mkdir -p /var/run/mysqld/ 再次尝试启动 MySQL 服务,报错如下: Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. [FAILED] 查看 MySQL 的告警日志: 2016-01-20T10:28:37.183387Z 0 [ERROR] /usr/sbin/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 13 - Permission denied)2016-01-20T10:28:37.183431Z 0 [ERROR] Can’t start server: can’t create PID file: Permission denied160120 18:28:37 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended160120 18:32:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 权限不正确,/var/run/mysqld/ 的属主和属组还是 root,MySQL 并不能在其中创建文件后修改该目录的属主和属组, [root@ ~]# ls -ld /var/run/mysqld/drwxr-xr-x 2 root root 40 Jan 20 18:28 /var/run/mysqld/[root@ ~]# chown mysql.mysql /var/run/mysqld/[root@ ~]# /etc/init.d/mysqld startStarting mysqld (via systemctl): [ OK ] 不能创建临时文件导致无法启动,错误日志:mysqld: Can't create/write to file '/tmp/ibfguTtC' (Errcode: 13) 问题描述 MySQL 启动失败,错误日志:mysqld: Can't create/write to file '/tmp/ibfguTtC' (Errcode: 13) 说明/tmp目录无法写入 解决办法 1、使用命令 ll -d /tmp 命令检查目录权限 2、使用 chmod 1777 /tmp 设置为正确权限 再测试可以启动成功 test701.jpg MySQL 服务无法识别导致无法启动,错误提示:mysqld: unrecognized service 问题描述 执行 MySQL 启动命令 service mysqld start 时,提示 mysqld: unrecognized service(未识别的服务),现象如图: 1.png 问题分析 因为 service 命令是通过 /etc/init.d 启动服务目录来调用的,所以我们需要看一下 /etc/init.d 是否存在 mysqld 这个服务,使用 find /etc/init.d/ -name mysqld 命令来查找,发现没有 mysqld 这个文件了 2.png 这个就是导致通过 service 命令启动报错的原因了,这时候我们需要将源码包中的 mysql.server 拷贝复制到 /etc/init.d/ 下,先使用 find / -name mysql.server 命令来查找下 mysql.server 文件位置,发现是在 /alidata/server/mysql-5.6.21/support-files/mysql.server 中 3.png 解决办法 现在我们需要将这个文件复制到 /etc/init.d/ 目录下,改名为 mysqld,并且赋予这个文件可执行权限 4.png 最后通过命令 chkconfig —add mysqld 添加开机自动启动服务 5.png 使用 service mysqld start 启动成功 6.png MySQL 配置了过大的内存导致无法启动,错误提示:InnoDB: Cannot allocate memory for the buffer pool 问题描述 MySQL 启动时报错,查看错误日志有[ERROR] InnoDB: Cannot allocate memory for the buffer pool(不能从缓存池中分配给innodb引擎需要的内存) 解决办法 需要调整 MySQL 配置文件 my.cnf 中的 "innodb_buffer_pool_size"、"key_buffer_size" 的大小设置,适当的调大内存分配,一般调整为系统内存的一半 先使用 free -m 查看下系统内存大小,查看是 1G 内存 1.png 那么 vi /etc/my.cnf,调整 "innodb_buffer_pool_size"、"key_buffer_size" 各为 500M 注意:my.cnf 以实际配置文件路径为准。 2.png 重启 MySQL 服务使其生效 3.png MySQL 启动参数过多导致无法启动,错误提示:Too many arguments (first extra is 'start') 问题描述 ECS Linux 系统安装 MySQL,启动的方式有多种,如果输入 /路径/mysqld start —user=mysql 启动后,出现报错:Too many arguments (first extra is 'start'),则说明这是因为启动 MySQL 的时候参数过多导致。 解决办法 遇到该问题,通过直接输入 /路径/mysqld —user=mysql,的方式启动,如下图: MySQL 目录权限问题导致无法启动,错误提示:File './mysql-bin.index' not found (Errcode:13 - Permission denied) 问题描述 MySQL 启动报错,错误日志,如下图 提示的异常为权限异常,我们到 data 目录查看 mysql-bin.index 的权限 正常情况下 data 目录下文件的属主和属组都应该是 mysql,目前为 root 备注:不太熟悉权限的朋友可以找一台正常的 MySQL 主机对比下 解决办法 找到问题之后解决起来就比较好办了,授予正确的权限,然后启动 MySQL MySQL 未初始化导致无法启动,错误提示:can't open the mysql.plugin table 问题描述 MySQL 服务启动时提示: ERROR! MySQL manager or server PID file could not be found! Starting MySQL. ERROR! Manager of pid-file quit without updating file. 问题分析 查看错误日志提示:can't open the mysql.plugin table ,please run mysql_upgrade to create it 解决办法 使用如下命令指定 datadir 与 basedir 进行初始化启动: /alidata/server/mysql-5.1.73/scripts/mysql_install_db —user=mysql —datadir=/alidata/server/mysql/data —basedir=/alidata/server/mysql-5.1.73/ 注意:以实际 MySQL 安装路径为准 MySQL 启动成功但未监听端口 问题描述 MySQL 启动成功,使用 ps -ef |grep mysql 可以看到进程,如下图: 也可以在服务器登陆,如下图: 但是使用 netstat -antp| grep 3306 可以看到没有监听端口。 查看 MySQL 配置文件,端口也没有更改。 解决办法 检查发现是配置文件中使用了 skip-networking,可以看到这个选项的的作用是不监听端口,同主机的用户通过 sockets 进行链接。外部主机由于没有监听端口,将无法连接。 将 skip-networking 注释掉之后,重启 MySQL 可以看到端口监听了。 MySQL ibdata1权限问题导致无法启动,错误日志:InnoDB Operating system error number 13 in a file operation 问题描述 mysql启动提示 update pid 失败: Starting MySQL. ERROR! Manager of pid-file quit without updating file. 同时错误日志中记录: InnoDB Operating system error number 13 in a file operation,如图: 解决办法 从该报错看,是提示操作系统访问文件 /usr/local/mysql/var/idata1 无权限 查看权限如下: 调整为 MySQL 可以访问的权限后,比如 777,或者是调整属帐号为 mysql,可以正常启动 MySQL。 磁盘空间满导致 MySQL 无法启动 问题描述 启动 MySQL 报错:ERROR! MySQL manager or server PID file could not be found! Starting MySQL. ERROR! Manager of pid-file quit without updating file. 查看下 MySQL 错误日志提示: 没有记录有效的信息,磁盘空间不足会导致这种情况 解决办法 df -h 看下 find / -size +100M 查看下大于100M 的文件 MySQL 日志占用空间太大,无特殊需求可以删除掉。 进程残留导致 MySQL 无法启动 问题描述 MySQL 启动失败,错误提示:Starting MySQL. ERROR! Manager of pid-file quit without updating file. [root@iZ9410f0jqiZ bin]# Starting MySQL. ERROR! Manager of pid-file quit without updating file. 使用 ps -A | grep mysqld ,发现 mysqld 和 mysqld_safe 进程残留,进程 ID 994 和 1221 解决办法 kill两个进程之后重新启动 MySQL 成功启动 MySQL服务自动停止 问题描述 服务器上安装的 MySQL,会出现自动停止的情况。出现这种现象,通常是服务器的内存不足导致的。 具体可以通过服务器日志来进行分析排查: 查看服务器的系统日志 /var/log/messages tail /var/log/messages 看下在 MySQL 自动停止的时间段内,有什么异常的日志信息,如果日志有提示 “Out of memory” 就可以判定,是服务器的内存使用不足,导致系统自动杀死的 MySQL 的进程 解决办法 通过升级服务器的内存可以解决.

KB小秘书 2019-12-02 02:07:16 0 浏览量 回答数 0

问题

Percona Server 5.7 安装教程

妙正灰 2019-12-01 21:43:29 1204 浏览量 回答数 1

问题

Nginx—owncloud安装记事

寒喵 2019-12-01 21:58:41 43845 浏览量 回答数 2

问题

Windows2012部署IIS-PHP环境

西秦说云 2019-12-01 21:01:28 13368 浏览量 回答数 4

问题

php简单增删查改

龙吟风 2019-12-01 21:04:35 5567 浏览量 回答数 1

回答

除了自身的硬件条件外,还需要对你的服务器做出安全设置控制,用2003系统来说下具体安全设置如下: 1、服务器安全设置之--硬盘权限篇 这里着重谈需要的权限,也就是最终文件夹或硬盘需要的权限,可以防御各种木马入侵,提权攻击,跨站攻击等。本实例经过多次试验,安全性能很好,服务器基本没有被木马威胁的担忧了。 硬盘或文件夹: C:\ D:\ E:\ F:\ 类推 主要权限部分: Administrators 完全控制 无 该文件夹,子文件夹及文件 <不是继承的> CREATOR OWNER 完全控制 只有子文件夹及文件 <不是继承的> SYSTEM 完全控制 该文件夹,子文件夹及文件 <不是继承的> 其他权限部分: 如果安装了其他运行环境,比如PHP等,则根据PHP的环境功能要求来设置硬盘权限,一般是安装目录加上users读取运行权限就足够了,比如c:\php的话,就在根目录权限继承的情况下加上users读取运行权限,需要写入数据的比如tmp文件夹,则把users的写删权限加上,运行权限不要,然后把虚拟主机用户的读权限拒绝即可。如果是mysql的话,用一个独立用户运行MYSQL会更安全,下面会有介绍。如果是winwebmail,则最好建立独立的应用程序池和独立IIS用户,然后整个安装目录有users用户的读/运行/写/权限,IIS用户则相同,这个IIS用户就只用在winwebmail的WEB访问中,其他IIS站点切勿使用 硬盘设置需要根据你的实际需要来设置权限! 2、服务器安全设置之--系统服务篇(设置完毕需要重新启动) *除非特殊情况非开不可,下列系统服务要停止并禁用: 1、Alerter 2、Application Layer Gateway Service 3、 Background Intelligent Transfer Service 4、Computer Browser 5、Distributed File System 6、Help and Support 7、Messenger 8、NetMeeting Remote Desktop Sharing 9、Print Spooler 10、Remote Registry 11、Task Scheduler 12、TCP/IP NetBIOS Helper 13、Telnet 14、Workstation 以上是windows2003server标准服务当中需要停止的服务,作为IIS网络服务器,以上服务务必要停止,如果需要SSL证书服务,则设置方法不同。如果你装有虚拟主机系统,设置当然也不一样!更详细设置可以根据自己的需要找更详细的参考资料。 3、服务器安全设置之--组件安全设置篇 (非常重要!!!) A、卸载WScript.Shell 和 Shell.application 组件,将下面的代码保存为一个.BAT文件执行(分2000和2003系统) win2000 regsvr32/u C:\WINNT\System32\wshom.ocx del C:\WINNT\System32\wshom.ocx regsvr32/u C:\WINNT\system32\shell32.dll del C:\WINNT\system32\shell32.dll win2003 regsvr32/u C:\WINDOWS\System32\wshom.ocx del C:\WINDOWS\System32\wshom.ocx regsvr32/u C:\WINDOWS\system32\shell32.dll del C:\WINDOWS\system32\shell32.dll B、改名不安全组件,需要注意的是组件的名称和Clsid都要改,并且要改彻底了,不要照抄,要自己改 【开始→运行→regedit→回车】打开注册表编辑器 然后【编辑→查找→填写Shell.application→查找下一个】 用这个方法能找到两个注册表项: {13709620-C279-11CE-A49E-444553540000} 和 Shell.application 。 第一步:为了确保万无一失,把这两个注册表项导出来,保存为xxxx.reg 文件。 第二步:比如我们想做这样的更改 13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001 Shell.application 改名为 Shell.application_nohack 第三步:那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。 其实,只要把对应注册表项导出来备份,然后直接改键名就可以了。 WScript.Shell 和 Shell.application 组件是 脚本入侵过程中,提升权限的重要环节,这两个组件的卸载和修改对应注册键名,可以很大程度的提高虚拟主机的脚本安全性能,一般来说,ASP和php类脚本提升权限的功能是无法实现了,再加上一些系统服务、硬盘访问权限、端口过滤、本地安全策略的设置,虚拟主机因该说,安全性能有非常大的提高,黑客入侵的可能性是非常低了。注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。下面是另外一种设置,大同小异。 一、禁止使用FileSystemObject组件 FileSystemObject可以对文件进行常规操作,可以通过修改注册表,将此组件改名,来防止此类木马的危害。 HKEY_CLASSES_ROOT\Scripting.FileSystemObject\ 改名为其它的名字,如:改为 FileSystemObject_ChangeName 自己以后调用的时候使用这个就可以正常调用此组件了 也要将clsid值也改一下 HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值 也可以将其删除,来防止此类木马的危害。 2000注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll 2003注销此组件命令:RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll 如何禁止Guest用户使用scrrun.dll来防止调用此组件? 使用这个命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests 二、禁止使用WScript.Shell组件 WScript.Shell可以调用系统内核运行DOS基本命令 可以通过修改注册表,将此组件改名,来防止此类木马的危害。 HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\ 改名为其它的名字,如:改为WScript.Shell_ChangeName 或 WScript.Shell.1_ChangeName 自己以后调用的时候使用这个就可以正常调用此组件了 也要将clsid值也改一下 HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值 HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值 也可以将其删除,来防止此类木马的危害。 三、禁止使用Shell.Application组件 Shell.Application可以调用系统内核运行DOS基本命令 可以通过修改注册表,将此组件改名,来防止此类木马的危害。 HKEY_CLASSES_ROOT\Shell.Application\ 及 HKEY_CLASSES_ROOT\Shell.Application.1\ 改名为其它的名字,如:改为Shell.Application_ChangeName 或 Shell.Application.1_ChangeName 自己以后调用的时候使用这个就可以正常调用此组件了 也要将clsid值也改一下 HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值 HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值 也可以将其删除,来防止此类木马的危害。 禁止Guest用户使用shell32.dll来防止调用此组件。 2000使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests 2003使用命令:cacls C:\WINDOWS\system32\shell32.dll /e /d guests 注:操作均需要重新启动WEB服务后才会生效。 四、调用Cmd.exe 禁用Guests组用户调用cmd.exe 2000使用命令:cacls C:\WINNT\system32\Cmd.exe /e /d guests 2003使用命令:cacls C:\WINDOWS\system32\Cmd.exe /e /d guests 通过以上四步的设置基本可以防范目前比较流行的几种木马,但最有效的办法还是通过综合安全设置,将服务器、程序安全都达到一定标准,才可能将安全等级设置较高,防范更多非法入侵。 C、防止Serv-U权限提升 (适用于 Serv-U6.0 以前版本,之后可以直接设置密码) 先停掉Serv-U服务 用Ultraedit打开ServUDaemon.exe 查找 Ascii:LocalAdministrator 和 #l@$ak#.lk;0@P 修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理。 另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。 4、服务器安全设置之--IIS用户设置方法 不同站点使用不用的IIS用户。另外权限的设置要细致。 5、服务器安全设置之--服务器安全和性能配置 把下面文本保存为: windows2000-2003服务器安全和性能注册表自动配置文件.reg 运行即可。[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoRecentDocsMenu"=hex:01,00,00,00 "NoRecentDocsHistory"=hex:01,00,00,00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] "DontDisplayLastUserName"="1" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "restrictanonymous"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Parameters] "AutoShareServer"=dword:00000000 "AutoShareWks"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "EnableICMPRedirect"=dword:00000000 "KeepAliveTime"=dword:000927c0 "SynAttackProtect"=dword:00000002 "TcpMaxHalfOpen"=dword:000001f4 "TcpMaxHalfOpenRetried"=dword:00000190 "TcpMaxConnectResponseRetransmissions"=dword:00000001 "TcpMaxDataRetransmissions"=dword:00000003 "TCPMaxPortsExhausted"=dword:00000005 "DisableIPSourceRouting"=dword:00000002 "TcpTimedWaitDelay"=dword:0000001e "TcpNumConnections"=dword:00004e20 "EnablePMTUDiscovery"=dword:00000000 "NoNameReleaseOnDemand"=dword:00000001 "EnableDeadGWDetect"=dword:00000000 "PerformRouterDiscovery"=dword:00000000 "EnableICMPRedirects"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters] "BacklogIncrement"=dword:00000005 "MaxConnBackLog"=dword:000007d0 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters] "EnableDynamicBacklog"=dword:00000001 "MinimumDynamicBacklog"=dword:00000014 "MaximumDynamicBacklog"=dword:00007530 "DynamicBacklogGrowthDelta"=dword:0000000a 功能:可抵御DDOS攻击2-3万包,提高服务器TCP-IP整体安全性能(效果等于软件防火墙,节约了系统资源) 6、服务器安全设置之--IP安全策略 (仅仅列出需要屏蔽或阻止的端口或协议) 协议 IP协议端口 源地址 目标地址 描述 方式 ICMP -- -- -- ICMP 阻止 UDP 135 任何IP地址 我的IP地址 135-UDP 阻止 UDP 136 任何IP地址 我的IP地址 136-UDP 阻止 UDP 137 任何IP地址 我的IP地址 137-UDP 阻止 UDP 138 任何IP地址 我的IP地址 138-UDP 阻止 UDP 139 任何IP地址 我的IP地址 139-UDP 阻止 TCP 445 任何IP地址-从任意端口 我的IP地址-445 445-TCP 阻止 UDP 445 任何IP地址-从任意端口 我的IP地址-445 445-UDP 阻止 UDP 69 任何IP地址-从任意端口 我的IP地址-69 69-入 阻止 UDP 69 我的IP地址-69 任何IP地址-任意端口 69-出 阻止 TCP 4444 任何IP地址-从任意端口 我的IP地址-4444 4444-TCP 阻止 TCP 1026 我的IP地址-1026 任何IP地址-任意端口 灰鸽子-1026 阻止 TCP 1027 我的IP地址-1027 任何IP地址-任意端口 灰鸽子-1027 阻止 TCP 1028 我的IP地址-1028 任何IP地址-任意端口 灰鸽子-1028 阻止 UDP 1026 我的IP地址-1026 任何IP地址-任意端口 灰鸽子-1026 阻止 UDP 1027 我的IP地址-1027 任何IP地址-任意端口 灰鸽子-1027 阻止 UDP 1028 我的IP地址-1028 任何IP地址-任意端口 灰鸽子-1028 阻止 TCP 21 我的IP地址-从任意端口 任何IP地址-到21端口 阻止tftp出站 阻止 TCP 99 我的IP地址-99 任何IP地址-任意端口 阻止99shell 阻止 以上是IP安全策略里的设置,可以根据实际情况,增加或删除端口 7、服务器安全设置之--本地安全策略设置 安全策略自动更新命令:GPUpdate /force (应用组策略自动生效不需重新启动) 开始菜单—>管理工具—>本地安全策略 A、本地策略——>审核策略 审核策略更改 成功 失败 审核登录事件 成功 失败 审核对象访问 失败 审核过程跟踪 无审核 审核目录服务访问 失败 审核特权使用 失败 审核系统事件 成功 失败 审核账户登录事件 成功 失败 审核账户管理 成功 失败 B、本地策略——>用户权限分配 关闭系统:只有Administrators组、其它全部删除。 通过终端服务拒绝登陆:加入Guests、User组 通过终端服务允许登陆:只加入Administrators组,其他全部删除 C、本地策略——>安全选项 交互式登陆:不显示上次的用户名 启用 网络访问:不允许SAM帐户和共享的匿名枚举 启用 网络访问:不允许为网络身份验证储存凭证 启用 网络访问:可匿名访问的共享 全部删除 网络访问:可匿名访问的命 全部删除 网络访问:可远程访问的注册表路径 全部删除 网络访问:可远程访问的注册表路径和子路径 全部删除 帐户:重命名来宾帐户 重命名一个帐户 帐户:重命名系统管理员帐户 重命名一个帐户 还有很多设置!你可以多找找资料! 答案来源网络,供参考,希望对您有帮助

问问小秘 2019-12-02 03:00:07 0 浏览量 回答数 0

回答

ECS Linux MySQL 常见无法启动或启动异常的解决方案 在 ECS Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,本文列举一些常见问题的解决办法。 注意:以下错误日志提示,都是查看 MySQL 错误日志得到,查看方法如下: 查看下 MySQL 配置文件 my.cnf 中有记录,日志记录在 /alidata/log/mysql/error.log 下   MySQL 配置文件 my.cnf 权限问题导致无法启动,错误提示: World-writable config file '/etc/my.cnf' is ignored Binlog 丢失导致无法启动,错误日志: File './mysql-bin.000001' not found Binlog 无法读取导致无法启动,错误日志:Failed to open log (file './mysql-bin.000001', errno 13) 不能创建 PID 导致无法启动,错误日志:Can't start server: can't create PID file: No such file or directory 不能创建临时文件导致无法启动,错误日志:mysqld: Can't create/write to file '/tmp/ibfguTtC' (Errcode: 13) MySQL 服务无法识别导致无法启动,错误提示:mysqld: unrecognized service MySQL 配置了过大的内存导致无法启动,错误日志:InnoDB: Cannot allocate memory for the buffer pool MySQL 启动参数过多导致无法启动,错误提示:Too many arguments (first extra is 'start') MySQL 目录权限问题导致无法启动,错误日志:File './mysql-bin.index' not found (Errcode:13 - Permission denied) MySQL 未初始化导致无法启动,错误提示:can't open the mysql.plugin table MySQL 启动成功但未监听端口 MySQL ibdata1权限问题导致无法启动,错误日志:InnoDB Operating system error number 13 in a file operation 磁盘空间满导致 MySQL 无法启动 进程残留导致 MySQL 无法启动 MySQL 服务自动停止 MySQL 配置文件 my.cnf 权限问题导致无法启动,错误提示:World-writable config file '/etc/my.cnf' is ignored 问题描述 ECS Linux MySQL 无法启动,报如下错误: 问题分析 查看 MySQL 错误日志发现如下错误(提示 MySQL 库的 host 表无法打开): 查看 /etc/my.cnf 配置文件: 到 MySQL 数据库所在目录查看表是否存在: 发现 MySQL 库的 host 表是存在的,那为什么会提示不存在呢? 问题应该出在 /etc/my.cnf 文件上,从第一个截图也可以看到警告信息(/etc/my.cnf 被忽视) 查看文件权限: 原来文件权限被设置成 777,因安全问题导致被 MySQL 忽视,所以去查询默认的数据库存放路径,没有 MySQL 库的 host 表导致启动失败: 解决办法 将 /etc/my.cnf 权限修改成 644,然后启动 MySQL 即可:   Binlog 丢失导致无法启动,错误日志: File './mysql-bin.000001' not found 问题描述 清理磁盘空间时删除了全部 binglog 日志,导致 MySQL 无法启动: MySQL 的 errorlog 里面可以看到错误信息: 解决办法 1、注释 Binlog 配置恢复方法: 编辑 /etc/my.cnf,找到 log-bin=mysql-bin,在前面加#将其注释暂时关闭 binlog,保存修改后启动 MySQL 服务 注意:my.cnf 配置文件路径以实际调用路径为准 2、清理 Binlog 索引恢复方法: 查看 Binlog 索引文件 所以,需要清空 mysql-bin.index 索引文件后即可,清理方法可以通过 vi 或者 echo 命令清理,如下: echo “” > mysql-bin.index 去除 Binlog 日志索引文件中调用的内容后,测试启动成功。 [root@test var]# /etc/init.d/mysqld startStarting MySQL. SUCCESS! 3、文件还原恢复方法: 提交工单,由我们帮您挂载最近的快照,您从快照磁盘复制最新的 binlog 文件到 mysql 的数据目录下,再重启 MySQL 服务即可。 注意:提交工单时请说明需要挂载快照的磁盘和快照。 正确清理 MySQL Binlog 方法请参考如下命令: mysql -uroot -p 密码use mysql;purge binary logs to ‘mysql-bin.011113’; 注意:mysql-bin.011113 是 Binlog 文件名,mysql-bin.011113 不会被删除,而 mysql-bin.011113 之前的日志都会被删除。   Binlog 无法读取导致无法启动,错误日志:Failed to open log (file './mysql-bin.000001', errno 13) 问题描述 MySQL 无法启动报错: Starting MySQL…The server quit without updating PID file [FAILED]a/server/mysql/data/test.pid). 查看 MySQL 的错误日志会提示如下信息: 110711 00:00:00 [ERROR] Failed to open log (file './mysql-bin.000001', errno 13) 这说明 Binlog 日志无法去读,一般由于磁盘空间满,或者权限不正确导致。 解决办法 首先查询磁盘空间: [root@test /]# df -hFilesystem Size Used Avail Use% Mounted on/dev/xvda1 20G 2.7G 17G 14% /tmpfs 498M 0 498M 0% /dev/shm/dev/xvdb1 30G 19G 9.7G 66% /alidata 查看磁盘空间没有满,则需要 ls 命令检查文件权限: -r———— 1 root root      601 Jul 28  2014 mysql-bin.000001 这说明文件属主和权限不正确,需要执行如下两条命令修复(mysql-bin.000001 这个日志文件需要换成具体文件名): chmod 660 mysql-bin.000001chown mysql.mysql mysql-bin.000001 修改正确后已经可以正常启动mysql   不能创建 PID 导致无法启动,错误日志:Can't start server: can't create PID file: No such file or directory 问题描述 MySQL 启动报错信息如下:  Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details、 [FAILED] 根据提示,使用 systemctl status mysqld.service 和 journalctl -xe 查看服务启动失败的原因。 [root@ ~]# systemctl status mysqld.servicemysqld.service - SYSV: MySQL database server.Loaded: loaded (/etc/rc.d/init.d/mysqld)Active: failed (Result: exit-code) since Wed 2016-01-20 18:26:57 CST; 40s agoDocs: man:systemd-sysv-generator(8)Process: 2979 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server….Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start.Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld: [FAILED]Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server..Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state.Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed.[root@ ~]# journalctl -xeUnit session-2.scope has begun starting up.Jan 20 18:26:48 spark01 sshd[2916]: pam_unix(sshd:session): session opened for user spark by (uid=0)Jan 20 18:26:52 spark01 su[2944]: (to root) spark on pts/1Jan 20 18:26:52 spark01 su[2944]: pam_unix(su-l:session): session opened for user root by spark(uid=1000)Jan 20 18:26:56 spark01 polkitd[909]: Registered Authentication Agent for unix-process:2974:117137 (system bus name :1.25Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server….— Subject: Unit mysqld.service has begun start-up— Defined-By: systemd— Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel—— Unit mysqld.service has begun starting up.Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start.Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld: [FAILED]Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server..— Subject: Unit mysqld.service has failed— Defined-By: systemd— Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel—— Unit mysqld.service has failed.—— The result is failed.Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state.Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed.Jan 20 18:26:57 spark01 polkitd[909]: Unregistered Authentication Agent for unix-process:2974:117137 (system bus name :1. 这些信息并不能提供服务启动失败的真正原因。 查看 MySQL 的告警日志: 2016-01-20T10:00:19.935771Z 0 [ERROR] /usr/sbin/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 2 - No such file or directory)2016-01-20T10:00:19.935795Z 0 [ERROR] Can’t start server: can’t create PID file: No such file or directory160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 解决办法 MySQL 服务在启动的时候,不能创建 pid 文件。 在终端看一下该目录是否存在,如果不存在,手动创建:  [root@ ~]# mkdir -p /var/run/mysqld/ 再次尝试启动 MySQL 服务,报错如下: Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. [FAILED] 查看 MySQL 的告警日志: 2016-01-20T10:28:37.183387Z 0 [ERROR] /usr/sbin/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 13 - Permission denied)2016-01-20T10:28:37.183431Z 0 [ERROR] Can’t start server: can’t create PID file: Permission denied160120 18:28:37 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended160120 18:32:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 权限不正确,/var/run/mysqld/ 的属主和属组还是 root,MySQL 并不能在其中创建文件后修改该目录的属主和属组, [root@ ~]# ls -ld /var/run/mysqld/drwxr-xr-x 2 root root 40 Jan 20 18:28 /var/run/mysqld/[root@ ~]# chown mysql.mysql /var/run/mysqld/[root@ ~]# /etc/init.d/mysqld startStarting mysqld (via systemctl): [ OK ]   不能创建临时文件导致无法启动,错误日志:mysqld: Can't create/write to file '/tmp/ibfguTtC' (Errcode: 13) 问题描述 MySQL 启动失败,错误日志:mysqld: Can't create/write to file '/tmp/ibfguTtC' (Errcode: 13) 说明/tmp目录无法写入 解决办法 1、使用命令 ll -d /tmp 命令检查目录权限 2、使用 chmod 1777 /tmp 设置为正确权限 再测试可以启动成功   MySQL 服务无法识别导致无法启动,错误提示:mysqld: unrecognized service 问题描述 执行 MySQL 启动命令 service mysqld start 时,提示 mysqld: unrecognized service(未识别的服务),现象如图: 问题分析 因为 service 命令是通过 /etc/init.d 启动服务目录来调用的,所以我们需要看一下 /etc/init.d 是否存在 mysqld 这个服务,使用 find /etc/init.d/ -name mysqld 命令来查找,发现没有 mysqld 这个文件了 这个就是导致通过 service 命令启动报错的原因了,这时候我们需要将源码包中的 mysql.server 拷贝复制到 /etc/init.d/ 下,先使用 find / -name mysql.server 命令来查找下 mysql.server 文件位置,发现是在 /alidata/server/mysql-5.6.21/support-files/mysql.server 中 解决办法 现在我们需要将这个文件复制到 /etc/init.d/ 目录下,改名为 mysqld,并且赋予这个文件可执行权限 最后通过命令 chkconfig —add mysqld 添加开机自动启动服务 使用 service mysqld start 启动成功   MySQL 配置了过大的内存导致无法启动,错误提示:InnoDB: Cannot allocate memory for the buffer pool 问题描述 MySQL 启动时报错,查看错误日志有[ERROR] InnoDB: Cannot allocate memory for the buffer pool(不能从缓存池中分配给innodb引擎需要的内存) 解决办法 需要调整 MySQL 配置文件 my.cnf 中的 "innodb_buffer_pool_size"、"key_buffer_size" 的大小设置,适当的调大内存分配,一般调整为系统内存的一半 先使用 free -m 查看下系统内存大小,查看是 1G 内存 那么 vi /etc/my.cnf,调整 "innodb_buffer_pool_size"、"key_buffer_size" 各为 500M 注意:my.cnf 以实际配置文件路径为准。 重启 MySQL 服务使其生效   MySQL 启动参数过多导致无法启动,错误提示:Too many arguments (first extra is 'start') 问题描述 ECS Linux 系统安装 MySQL,启动的方式有多种,如果输入 /路径/mysqld start —user=mysql 启动后,出现报错:Too many arguments (first extra is 'start'),则说明这是因为启动 MySQL 的时候参数过多导致。 解决办法 遇到该问题,通过直接输入 /路径/mysqld —user=mysql,的方式启动,如下图:   MySQL 目录权限问题导致无法启动,错误提示:File './mysql-bin.index' not found (Errcode:13 - Permission denied) 问题描述 MySQL 启动报错,错误日志,如下图 提示的异常为权限异常,我们到 data 目录查看 mysql-bin.index 的权限 正常情况下 data 目录下文件的属主和属组都应该是 mysql,目前为 root 备注:不太熟悉权限的朋友可以找一台正常的 MySQL 主机对比下 解决办法 找到问题之后解决起来就比较好办了,授予正确的权限,然后启动 MySQL   MySQL 未初始化导致无法启动,错误提示:can't open the mysql.plugin table 问题描述 MySQL 服务启动时提示: ERROR! MySQL manager or server PID file could not be found! Starting MySQL. ERROR! Manager of pid-file quit without updating file. 问题分析 查看错误日志提示:can't open the mysql.plugin table ,please run mysql_upgrade to create it 解决办法 使用如下命令指定 datadir 与 basedir 进行初始化启动: /alidata/server/mysql-5.1.73/scripts/mysql_install_db —user=mysql —datadir=/alidata/server/mysql/data —basedir=/alidata/server/mysql-5.1.73/ 注意:以实际 MySQL 安装路径为准   MySQL 启动成功但未监听端口 问题描述 MySQL 启动成功,使用 ps -ef |grep mysql 可以看到进程,如下图: 也可以在服务器登陆,如下图: 但是使用 netstat -antp| grep 3306 可以看到没有监听端口。 查看 MySQL 配置文件,端口也没有更改。 解决办法 检查发现是配置文件中使用了 skip-networking,可以看到这个选项的的作用是不监听端口,同主机的用户通过 sockets 进行链接。外部主机由于没有监听端口,将无法连接。 将 skip-networking 注释掉之后,重启 MySQL 可以看到端口监听了。   MySQL ibdata1权限问题导致无法启动,错误日志:InnoDB Operating system error number 13 in a file operation 问题描述 mysql启动提示 update pid 失败: Starting MySQL. ERROR! Manager of pid-file quit without updating file. 同时错误日志中记录: InnoDB Operating system error number 13 in a file operation,如图: 解决办法 从该报错看,是提示操作系统访问文件 /usr/local/mysql/var/idata1 无权限 查看权限如下: 调整为 MySQL 可以访问的权限后,比如 777,或者是调整属帐号为 mysql,可以正常启动 MySQL。   磁盘空间满导致 MySQL 无法启动 问题描述 启动 MySQL 报错:ERROR! MySQL manager or server PID file could not be found! Starting MySQL. ERROR! Manager of pid-file quit without updating file. 查看下 MySQL 错误日志提示: 没有记录有效的信息,磁盘空间不足会导致这种情况 解决办法 df -h 看下 find / -size +100M 查看下大于100M 的文件 MySQL 日志占用空间太大,无特殊需求可以删除掉。   进程残留导致 MySQL 无法启动 问题描述 MySQL 启动失败,错误提示:Starting MySQL. ERROR! Manager of pid-file quit without updating file. [root@iZ9410f0jqiZ bin]# Starting MySQL. ERROR! Manager of pid-file quit without updating file. 使用 ps -A | grep mysqld ,发现 mysqld 和 mysqld_safe 进程残留,进程 ID 994 和 1221 解决办法 kill两个进程之后重新启动 MySQL 成功启动   MySQL 服务自动停止 问题描述 服务器上安装的 MySQL,会出现自动停止的情况。出现这种现象,通常是服务器的内存不足导致的。 具体可以通过服务器日志来进行分析排查: 查看服务器的系统日志 /var/log/messages tail /var/log/messages 看下在 MySQL 自动停止的时间段内,有什么异常的日志信息,如果日志有提示 “Out of memory” 就可以判定,是服务器的内存使用不足,导致系统自动杀死的 MySQL 的进程 解决办法 通过升级服务器的内存可以解决.

51干警网 2019-12-02 00:35:31 0 浏览量 回答数 0

问题

云服务器 ECS Linux MySQL 无法远程连接问题有哪些常见错误及解决办法

boxti 2019-12-01 21:55:16 2249 浏览量 回答数 0

回答

在使用自建 MySQL 数据库的时候,偶尔会遇到无法连接 MySQL 服务器的情况,以下列举一些常见问题及解决办法: 账号没有授权导致无法连接 MySQL,报错:'xxxx' is not allowed to connect to this MySQL Server 端口监听不对导致无法连接 MySQL MySQL 连接报错: Lost connection to MySQL server at 'reading initial communication packet'  版本问题导致无法连接 MySQL,报错:Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) 账号没有授权导致无法连接 MySQL,报错:'xxxx' is not allowed to connect to this MySQL Server 问题现象 服务器上部署 MySQL  在本地直接连接服务器是没有问题的,远程连接 MySQL 会显示错误 。 报错:EHost 'XX.XX.XX.XX' is not allowed to connect to this MySQL serverConnection closed by foreign host. 解决方案 查看 MySQL  监听的地址就是 0.0.0.0 。这种情况请先检查两个地方 1、服务器是否开启了防火墙,请先关闭防火墙测试 2、MySQL 是否没有打开远程登录 打开远程登陆有两种方法。 (1 )该表:在本机登入 MySQL 后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从 ”localhost” 改为 '%'。 (2 )授权法:为 MySQL 创建一个 远程连接的用户 一般这样配置就没有问题了。   端口监听不对导致无法连接 MySQL MySQL 监听在 127.0.0.1 上导致外部无法连接,如下图: 修改 MySQL 配置文件里面的 bind-address,如下图重启即可。 MySQL 连接报错:Lost connection to MySQL server at 'reading initial communication packet'  问题现象 MySQL 远程连接报错:Lost connection to MySQL server at 'reading initial communication packet'  解决方案 1、检查是否有防火墙限制2、检查 MySQL 是否有访问权限 use mysql; Grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option; flush privileges; 3、检查 my.ini 文件里是否设置了 bind-address 参数,如果有将该条注释掉即可。 4、在 my.ini 中添加 skip-name-resolve vi /etc/my.cnf [mysqld] skip-name-resolve #增加这个 5、修改 hosts.allow vi /etc/hosts.allow mysqld-max : ALL :ALLOW #增加这个   版本问题导致无法连接 MySQL,报错:Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) 问题现象 ECS Linux 主机本机 MySQL 客户端版本为 5.6,连接低版本的 MySQL 客户端 报错ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) 问题原因 由于服务器端的密码管理协议陈旧,使用的是旧有的用户密码格式存储;但是客户端升级之后采用了新的密码格式 。mysql5.6版本遇到这种不一致的情况就会拒绝连接 。 解决方案 连接时增加 --secure-auth 参数,连接命令如下: mysql -h host -u username --secure-auth -p 详细的表述可以参考 MySQL 的手册   如果问题还未能解决,您可以到阿里云社区进行免费咨询,或联系云市场商家寻求帮助。

51干警网 2019-12-02 00:35:42 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播