随着软件测试市场企业需求,测试工程师不止局限在功能层面,还涉及到更广泛、更深层次的需要,比如接口、性能、自动化、安全等,而这些测试常常需要借助数据库来协助定位Bug、做数据校验等。作为一个重要的测试辅助工具,也是先阶段软件测试工程师必学的技能。
学习数据库的第一步,当然是环境的配置安装,然鹅,数据库的安装配置相对来说不是那么简单。在搭建使用过程中,总会遇到各种各样的报错,今天就针对常用数据库MySQL的常见问题进行汇总及解决方案梳理。非常使用,记得收藏喔!(同时,我们还有MySQL安装包和安装视频资料,如果需要,文末可领取)
常见问题1: 二次安装时配置文件安装不成功。
解决方案:发生该报错的原因一般是第一安装的MySQL未卸载清理干净导致。解决方案是重新卸载清理MySQL。关于如何彻底清理MySQL数据库,以下文章有详细解释:
如何彻底清理卸载MySQL
常见问题2:端口被占用
问题描述:如下图的步骤中,如果填写MySQL默认端口3306,出现感叹号标识,且next按钮无法启用的话,说明端口被占用,需要替换一个端口。
解决方案:把端口替换成非3306,如3307、3308等。
常见问题3:编码集未修改
问题描述:MySQL安装的默认编码集是Latin文,如果在安装过程中没有修改成utf-8,则在后续使用中,对于中文数据,会出现乱码现象。
解决方案:
1. 修改数据库字符集(ps:修改完数据库字符集,需要重启mysql数据库。):
alter database 数据库名 charactersetutf8mb4;
2. 修改表字符集:
ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
3. 生成所有表修改字符集语句:
SELECT TABLE_NAME,CONCAT('ALTER TABLE ',TABLE_NAME,' DEFAULT CHARACTER SET ',a.DEFAULT_CHARACTER_SET_NAME,' COLLATE ',a.DEFAULT_COLLATION_NAME,';') executeSQL FROM information_schema.SCHEMATA a,information_schema.TABLES b WHERE a.SCHEMA_NAME=b.TABLE_SCHEMA AND a.DEFAULT_COLLATION_NAME!=b.TABLE_COLLATION AND b.TABLE_SCHEMA='数据库名'
4. 修改列字符集
ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
5. 修改数据库配置my.cnf
[client]default-character-set = utf8mb4
[mysql]default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
常见问题4:安装报错需要visual studio
问题描述:出现 “This application requires Visual Studio 2013 Redistributable. Please install the Redistributable then run this installer again.”,如下图
解决方法 :到https://www.microsoft.com/zh-CN/download/details.aspx?id=40784下载 vcredist_x64或vcredist_x86插件更新VC++ 2013。
常见问题5:MySQL安装完成后启动失败
问题描述:net start mysql出现“发生系统错误 5 拒绝访问”。
解决方案:将控制台切换到管理员模式
常见问题6:启动MySQL显示服务器无效
问题描述:MySQL安装完成后启动失败net start mysql 出现 “服务名无效” 错误。
解决方案:运行 services.msc 查看系统服务名称,有可能是服务名写错了。查看后再运行 net start 服务名 即可。
常见问题7:数据库连接报错1862
解决方案:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set authentication_string=password(“123”) where user=”root”;(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
常见问题8:不能连接到localhost 上的mysql
问题描述:报错信息为Can't connect to MySQL server on 'localhost'(10061),即不能连接到localhost 上的mysql。说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误。
解决方案:既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的my.ini配置的有问题。重新配置其即可。?如果觉得mysql负载异常,可以到mysql/bin 的目录下执行mysqladmin-uroot -p123 processlist来查看mysql当前的进程。
常见问题9:用户root 访问 localhost 被拒绝
问题描述:报错信息是Access denied for user:'roota@localhost' (Using password: YES),即用户root 访问 localhost 被拒绝(没有允许通过)造成这个错误一般数据库用户名和密码相对mysql服务器不正确
解决方案:仔细检查自己论坛下面的 ./config.inc.php 找到$dbuser、$dbpw核实后重新设置保存即可。
常见问题10: 不能连接到localhost 上的mysql
问题描述:报错信息是Error: Can't connect tolocal MySQL server through socket '/var/lib/mysql/mysql.sock'?error.:2002。出现这个错误一般情况下是因为下面两个原因:1.MySQL 服务器没有开启。
2.MySQL 服务器开启了,但不能找到 socket 文件。
解决方案:
1.虚拟主机用户,请联系空间商确认数据库是否正常启动。
2.独立主机用户,请检查一下 MySQL 服务是否已经开启,没有开启,请启动MySQL 服务;如果已经开启,并且是 Linux 系统,请检查一下MySQL 的 socket 的路径,然后打开 config.inc.php 找到$dbhost = 'localhost'; 在hostname 后面加冒号‘:'和 MySQL 的socket 的路径。比如MySQL 服务器为 localhost?MySQL的 socket 的路径为 /tmp/mysql.sock?那么就改成如下:?$dbhost= 'localhost:/temp/mysql.sock';
看到这里,如果你有一颗想要顺利进阶,升职加薪的❤️不妨参与我们的软件测试一周集训吧!可以后台私信我,也可以进入qun :⑥③⑥⑧⑤⑨⑨⑥④,获取更多咨询哦~