服务器MySQL的问题,有谁能够解决
解决办法是重新设置root用户密码,在Windows平台下操作步骤如下:
1、以系统管理员身份登录到系统;
如果是作为Windows服务运行的服务器,进入服务管理器:开始菜单->控制面板->管理工具->服务
如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。
3、创建1个文本文件,并将下述命令置于单一行中:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
用任意名称保存该文件。在本例中,该文件为C:\mysql-inittxt。
4、进入DOS命令提示:开始菜单->运行-> cmd
假定你已将MySQL安装到C:\mysql。如果你将MySQL安装到了另一位置,请对下述命令进行相应的调整。
在DOS命令提示符下,执行命令:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-inittxt
在服务器启动时,执行由“--init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:\mysql-inittxt。
5、停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。
附:
其他方法
方法一:
# /etc/initd/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/initd/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
方法二:
直接使用/etc/mysql/debiancnf文件中[client]节提供的用户名和密码:
# mysql -udebian-sys-maint -p
Enter password: <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
另一个方法
Windows:
1 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程
2 进入命令行,来到mysql的安装目录假设安装目录为 d:\mysql\ , CMD进入命令行
3 运行 d:\mysql\bin\mysqld-nt --skip-grant-tables 启动mysql,关闭权限的检查
4 运行 d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重设root密码
5 重新启动mysql服务
1、查找以前是否装有mysql
命令:rpm -qa|grep -i mysql
可以看到如下图的所示:
说明之前安装了:
MySQL-client-5525a-1rhel5
MySQL-server-5525a-1rhel5
2、停止mysql服务、删除之前安装的mysql
删除命令:rpm -e –nodeps 包名
# rpm -ev MySQL-client-5525a-1rhel5
# rpm -ev MySQL-server-5525a-1rhel5
3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
查找结果如下:
[root@localhost ~]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
具体的步骤如图:查找目录并删除
注意:卸载后/etc/mycnf不会删除,需要进行手工删除
rm -rf /etc/mycnf
4、再次查找机器是否安装mysql
rpm -qa|grep -i mysql
无结果,说明已经卸载彻底、接下来直接安装mysql即可
caching_sha2_password认证插件提供更多的密码加密方式,并且在加密方面具有更好的表现,目前MySQL 80选用caching_sha2_password作为默认的认证插件,MySQL 57的认证插件是MySQL_native_password。如果客户端版本过低,会造成无法识别MySQL 80的加密认证方式,最终导致连接问题。
MySQL存储引擎现在负责提供自己的分区处理程序,而MySQL服务器不再提供通用分区支持,InnoDB和NDB是唯一提供MySQL 80支持的本地分区处理程序的存储引擎。 如果分区表用的是别的存储引擎,存储引擎必须进行修改。要么将其转换为InnoDB或NDB,要么删除其分区。通过MySQLdump从57获取的备份文件,在导入到80环境前,需要确保创建分区表语句中指定的存储引擎必须支持分区,否则会报错。
MySQL 80的默认字符集utf8mb4,可能会导致之前数据的字符集跟新建对象的字符集不一致,为了避免新旧对象字符集不一致的情况,可以在配置文件将字符集和校验规则设置为旧版本的字符集和校验规则。
MySQL 80启动使用的lower_case_table_names值必须跟初始化时使用的一致。使用不同的设置重新启动服务器会引入与标识符的排序和比较方式不一致的问题。
< lower_case_table_names >
https://devmysqlcom/doc/refman/80/en/server-systemvariableshtml#sysvar_lower_case_table_names
要避免MySQL 80上的启动失败,MySQL配置文件中的sql_mode系统变量不能包含NO_AUTO_CREATE_USER。
从MySQL 5724和MySQL 8013开始,MySQLdump从存储程序定义中删除了NO_AUTO_CREATE_USER。必须手动修改使用早期版本的MySQLdump创建的转储文件,以删除NO_AUTO_CREATE_USER。
在MySQL 8011中,删除了这些不推荐使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。从57到80的复制场景中,如果语句使用到废弃的SQL Mode会导致复制异常。
在执行到MySQL 803或更高版本的in-place升级时,BACKUP_ADMIN权限自动授予具有RELOAD权限的用户。
本文对MySQL 57到MySQL 80的升级过程中出现部分易出现问题进行整理:升级对MySQL版本的要求、升级都做了哪些内容、数据库升级做了哪些步骤以及注意事项,希望对大家版本升级有帮助。
删掉的到底是表还是库?其次,查看日志,查看有没有删除操作,如果没有信息,查看binlog,解析成sql,查找删除操作,删除的时间段、执行的用户等信息。考虑数据库会不会已经被人获取权限,查找数据库中的用户,看有没有伪装成root或者普通用户的未知用户。查找系统登录信息,历史记录,端口、进程,查看系统是否已经被获取权限。
0条评论