MySQL常见错误

昨天一个项目出了点问题,采用的数据库是 MySQL,下面主要记录一下出现的错误及解决方案,希望可以帮助到别人

  • MySQL 服务正在启动。MSQL 服务无法启动。服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。

    原因:没有初始化 MySQL,生成 data 目录

    解决方案:

    mysqld –initialize-insecure –user=mysql 没有初始化 MySQL,生成 data 目录就解决这个问题  了。

  • 通过 DOS 窗口输入 net start mysql 时,却提示服务名无效

    原因:MySQL 服务安装失败

    解决方案:

    (1)首先我们先进入 mysql 的安装目录下的 bin 目录

    (2)之后打开 DOS 命令窗口(一定要管理员身份打开,不然会报错),进入该目录下(一定要进入该目录,否则操作错误)。

    (3)输入命令:mysqld –install。提示安装服务成功。

    (4)如果要卸载服务,可以输入如下命令:mysqld –remove。提示移除服务成功。

  • 安装 My SQL 的时候出现了“The service already exists The current server installed: D:-5.7.18-win64-5.7.18-winx64MySQL”

    原因:原先安装的 mysql 没有卸载完,服务没有删除掉。

    解决方案:

    1
    
     在cmd中输入”sc query mysql”查看名为mysql的服务
    

    https://image.coderlab.cn/preview/1473985070518865921

    1
    
     如上图,服务确实存在,则进行删除操作“sc delete mysql"
    

    https://image.coderlab.cn/preview/1473984515570503681

    返回“[SC] DeleteService 成功”,则说明删除成功。

    然后就可以进行安装操作了~~

  • MySQL 导出文件时报错: ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option

    mysql> select * from t_user limit 5 into outfile ‘/tmp/test.csv’;

    ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement

    报错原因:

    secure_file_priv 设置了指定目录,需要在指定的目录下进行数据导出,而且需要指定目前目录的读写权限。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    mysql> show variables like ‘%secure%’;
    
    +————————–+———————–+
    
    Variable_name | Value |
    
    +————————–+———————–+
    
    require_secure_transport | OFF |
    
    secure_auth | ON |
    
    secure_file_priv | /var/lib/mysql-files/ |
    
    +————————–+———————–+
    

    如果 secure_file_priv 参数为空,则需要在配置文件中设置该参数,并重启数据库

    1
    2
    3
    4
    
    [mysql@localhost percona]$ service mysqld restart
    [mysql@localhost percona]$ vim /etc/my.cnf
    [mysqld]
     secure_file_priv=‘/var/lib/mysql-files/’
    

    重启后:

    mysql> select * from t_user limit 5 into outfile ‘/var/lib/mysql-files/test.csv’;

    Query OK, 5 rows affected (0.01 sec)

    secure_file_priv 参数说明:

    这个参数用来限制数据导入和导出操作的效果,例如执行 LOAD DATA、SELECT … INTO OUTFILE 语句和 LOAD_FILE()函数。这些操作需要用户具有 FILE 权限。

    如果这个参数为空,这个变量没有效果;

    如果这个参数设为一个目录名,MySQL 服务只允许在这个目录中执行文件的导入和导出操作。这个目录必须存在,MySQL 服务不会创建它;

    如果这个参数为 NULL,MySQL 服务会禁止导入和导出操作。这个参数在 MySQL 5.7.6 版本引入。

  • mysqld –initialize 初始化数据库遇到了 error: Found option without preceding group in config file: /data/3307/my.cnf at line: 1

    在 mysql install 命令运行成功后,接着运行 mysqld –initialize 命令完成数据库初始化功能,这是遇到了 error: Found option without preceding group in config file: /data/3307/my.cnf at line: 1

    https://image.coderlab.cn/preview/1473997467111493633

    这里写图片描述

    原因:my.ini 文件格式是 utf-8

    解决办法,my.ini 文件保存为 ANSI 格式文件

    https://image.coderlab.cn/preview/1473997469615493121

    这里写图片描述

  • 安装 mysql 时出现应用程序无法正常启动(0xc000007b) /计算机中丢失 MSVCR120.dll

    解决方案:

    在百度上下载 DirectX 修复工具(增强版),修复即可。

    链接:http://www.pc6.com/softview/SoftView_57945.html

    注意,需下载增强版,这样可以修补系统相关的 C++组件。