mysql数据库常见问题及解决办法
(⼀)安装⽅⾯和调整默认数据位置
问题⼀:安装时候问题
1、安装之前,需要先执⾏安装vcredist,分别32位或64位。先试试new不⾏再试试old
2、执⾏安装“mysql-installer-community-5.7.20.msi”选择"server only"即可,后⾯都"next"
3、MySQL server5.7版出现server failed
报错⽇志:
1. 1: Action 14:02:10: INSTALL.
2. 1: 1: MySQL Server5.72: {EC09D203-422B-4C9F-B623-230EF57EE709}
3. 1: Action14:02:10: FindRelatedProducts. Searching for related applications
4. 1: Action14:02:10: AppSearch. Searching for installed applications
5. 1: Action14:02:10: LaunchConditions. Evaluating launch conditions
6. 1: This application requires Visual Studio 2013 Redistributable. Please install the Redistributable then run this installer
again.
7. 1: 1: MySQL Server5.72: {EC09D203-422B-4C9F-B623-230EF57EE709} 3: 3
8. 1: The action'Install'for product 'MySQL Server 5.7.19' failed.
安装时,出现了这种错误,MySQL server,即数据库服务器没有安装成功。试了多次,在⼀个帖⼦⾥到了⽅法。
需要升级⼀个插件,Visual C++ 2013 and Visual C++ Redistributable Package
插件地址:
问题⼆:安装后更改默认⽂件存放位置
在安装完成后,要修改存储的位置,⽐如从安装⽬录下的C:\Program Files\MySQL\MySQL Server 5.0
\Data⽂件夹转移
到D:\mySQLData⽂件夹。
1、在D:\下新建mySQLData⽂件夹
2、停⽌MySQL服务,将C:\Program Files\MySQL\MySQL Server 5.0\Data下的⽂件夹和⽂件⼀起拷贝到D:\mySQLData⽂件夹下
3、在安装⽬录下到my.ini⽂件,到:
#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
将datadir的值更改为D:/mySQLData/
保存后,重新启动mySQL服务即可。
问题三:my.ini位置
以下两个地址都有可能
mysql下载32位
C:\Program Files\MySQL\MySQL Server 5.7
C:\ProgramData\MySQL\MySQL Server 5.7  (此地址为隐藏地址)
问题四:服务启动失败
(1)本地计算机上的mysql服务启动停⽌后,某些服务在未由其他服务或程序使⽤时将⾃动停⽌。
在启动mysql服务时出现该错误:
mysql 版本 5.7.14
系统 win 7
后来经过⼀系列的百度,⾕歌,总算是解决了。
⾸先,你需要把原来的服务删除:
命令:先cd到安装⽬录下,然后执⾏命令  mysqld --remove MySQL57
注意:mysql为你的服务名称,⾃⼰可以随便定义的。
此命令需要进⼊mysql安装⽬录下的bin⽬录运⾏!
mysql的根⽬录下:
你需要清空data⽬录。
如果没有data⽬录,请⾃⾏创建⼀个空⽬录,起名为data
然后在bin⽬录下运⾏命令初始化
命令:mysqld --initialize-insecure --user=mysql
接着运⾏:
后⾯的路径记得改成⾃⼰的!
这是注册mysql服务!
特别注意:如果my.ini⽂件在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini⽬录,需要将其复制到安装⽬录即C:\Program Files\MySQL\MySQL Server 5.7\my.ini  (或者是放到安装⽬录下,要启动的对应的MYSQL\BIN⽬录下)
命令:mysqld --install MySQL57
然后就OK了!
我不知道那个是不是⽣成随机密码的。
⼤家可以去data⽬录下.err后缀的⽇志。
打开⽂件:
会告诉你密码的!
⽤户名是:root
默认密码都是root
接下来就是登陆
因为我这⾥的密码为空,直接再空格就OK了。
完美解决!
(2)windows7下启动mysql服务出现服务名⽆效的原因及解决⽅法
问题原因:mysql服务没有安装。
解决办法: 在 mysql bin⽬录下 以管理员的权限 执⾏ -install命令。
如:D:\mysql-5.7.17-win32\bin& -install 然后仍然以管理员的权限 net start mysql 开启Mysql服务了。
附卸载mysql服务的⽅法。
1、以管理员的权限 net stop mysql ,关闭mysql服务
2、以管理员的权限 mysqld -remove ,卸载mysql服务
问题五:远程登陆
1:赋予权限
创建⼀个允许远程访问的⽤户,⽤户名是root,密码是123456
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
2:权限更新
flush privileges;
(⼆)使⽤调整
⼀:常⽤命令
1:展⽰默认安装⽬录
show variables like '%basedir%'
2:展⽰数据默认存放位置
show variables like 'datadir';
⼆:删除表提⽰有外键约束
1 问题
删除有外键关联的数据或者表的时候,mysql出现报错:
Cannot delete or update a parent row: a foreign key constraint fails
2 解决⽅法:先关闭外键约束,执⾏删除操作,然后再开启外键约束
SET foreign_key_checks = 0;  // 先设置外键约束检查关闭
drop table mytable;  // 删除数据,表或者视图
SET foreign_key_checks = 1; // 开启外键约束检查,以保持表结构完整性
三:
在我们使⽤mysql导⼊⼤⽂件sql时可能会报MySQL server has gone away错误,该问题是max_allowed_packet配置的默认值设置太⼩,只需要相应调⼤该项的值之后再次导⼊便能成功。该项的作⽤是限制mysql服务端接收到的包的⼤⼩,因此如果导⼊的⽂件过⼤则可能会超过该项设置的值从⽽导致导⼊不成功!下⾯我们来看⼀下如何查看以及设置该项的值。
查看 max_allowed_packet 的值
show global variables like'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value  |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
可以看到默认情况下该项的⼤⼩只有4M,接下来将该值设置成150M(1024*1024*150)
set global max_allowed_packet=157286400;
此时再查看⼤⼩
show global variables like'max_allowed_packet';
通过调⼤该值,⼀般来说再次导⼊数据量⼤的sql应该就能成功了,如果任然报错,则继续再调⼤⼀些
就⾏,请注意通过在命令⾏中进⾏设置只对当前有效,重启mysql服务之后则恢复默认值,但可以通过修改配置⽂件(可以在配置⽂件myf中添
加max_allowed_packet=150M即可)来达到永久有效的⽬的,可其实我们并不是经常有这种⼤量数据的导⼊操作,所以个⼈觉得通过命令⾏使得当前配置⽣效即可,没有必要修改配置⽂件。
四:连接mysql,报错”Table performance_schema.session_variables doesn’t exist”
解决办法:
第⼀步:
进⼊bin⽬录下,输⼊mysql_upgrade -u root -p --force,如下:
[root@localhost /]# cd /usr/bin
[root@localhost bin]# mysql_upgrade -u root -p --force
第⼆步:重新启动mysql的服务:
service mysql restart
再次运⾏mysql,就解决了。
造成的这种情况的具体原因是 因为我们在安装pysql的时候,升级了mysql的版本到5.7.18,但是只是升级了mysql的软件包,没有相应的升级数据库的相关表结构。
五:MySQL启动客户端时[Warning]: ignoring option '--no-beep' due to invalid value ''.
修改my.ini

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。