【数据库】MySQL与Navicat问题汇总

一.【安装问题】

安装新版本之前必须完全卸载老版本MySQL

  • 1.cmd中输入 sc delete mysql;或者控制面板中卸载mysql;

  • 2.regedit删除三项MySQL的项:

    HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL
    HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL
    HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL

  • 3.手动删除C盘下mysql根目录。

【8.0.12】
1.安装后bin目录下无法找到my.ini
在这里插入图片描述
在这里插入图片描述

【5.6.41】
2.安装后bin目录下只有my-default.ini,无my.ini
可以拷贝一个my-default.ini修改成my.ini
然后在my.ini里面的[mysqld]下面加:character-set-server=utf8
注意:原文件my-default.ini不要动,不然重新启动mysql会报系统错误

二.【配置问题】

1.启动

  • cmd - (mysql的bin目录下) - “mysql -u root -p
  • 输入密码
  • 启动成功
  • 每一行开头都出现出现"mysql>"

2.查看当前用户

  • mysql> select user(); (注意都要以Semicolon结尾)
+---------------------+
| user( )            |
+---------------------+
| root@localhost     | (←当前用户)
+---------------------+

3.更改用户名

  • 第1行:mysql> use mysql
  • 第2行:mysql> update user set user="chiu" where user="root"; (把原名root改成chiu)
  • 操作成功:"Query OK"

4.查看当前系统中的用户名单

  • mysql> select user,host from mysql.user;
+-------------------+ ----------------+
| user        |host            |
+-------------------+ ----------------+
| chiu              |localhost       |
| mysql.infoschema |localhost       |
| mysql.session     |localhost       |
| mysql.sys     |localhost       |
+-------------------+ ----------------+

除了你的默认root,还多出mysql.session 和 mysql.sys两个用户。这两个不要管他,是MySQL 5.7 新增默认账号,这两个用户别乱动。

  • mysql.sys:用于 sys schema中对象的定义。使用 mysql.sys 用户可避免DBA重命名或者删除root用户时发生的问题。该用户已被锁定,客户端无法连接。
  • mysql.sessio:插件内部使用来访问服务器。该用户已被锁定,客户端无法连接。

5.cmd中输入net start mysql 提示:服务名无效 请键入NET HELPING 2185以获得更多的帮助
net start mysql 是DOS中启动mysql的命令符;net stop mysql 指关闭;
进入MySQL的bin目录,并在bin目录打开命令行窗口,在命令行窗口输入:mysqld --install,回车,提示:Service successfully installed。表示安装MySQL服务成功,命令行窗口输入:net start mysql ,可以正常启动。

6.忘记密码/密码错误如何处理

  • 修改MySQL的登录设置: 在my.ini中找到[mysqld],在下行添加一句:skip-grant-tables
    例如:
    [mysqld] 
    datadir=/var/lib/mysql 
    socket=/var/lib/mysql/mysql.sock 
    skip-grant-tables
  • 关闭正在运行的MySQL服务。net stop mysql
  • 转到mysql\bin目录,输入mysqld --skip-grant-tables 回车。此段代码启动MySQL服务的时候跳过权限表认证
  • 这时次DOS窗口已经不能动了,也不能关闭。新开一个DOS窗口,转至bin目录下
  • 输入mysql 回车,若成功,将出现mysql >
  • 链接权限数据库:use mysql;
  • 改密码:update user set password=password("新密码") where user="root";(别忘了最后的分号)
  • 刷新权限(必须步骤):flush privileges;
  • 退出 quit
  • 将my.ini中skip-grant-tables 语句删除
  • 注销系统,讲再进入DOS,net start mysqlnet mysql -uroot -padmin可以登录。

7.创建新用户@localhost

  • mysql> create user 'test'@'localhost' identified by '123456';
  • 刷新权限(必须步骤):flush privileges;

8.删除匿名用户

+-------------------+ ----------------+
| user        |host            |
+-------------------+ ----------------+
| chiu              |localhost       |
|                  |localhost       |   (此行用户名空缺,为匿名用户)
| mysql.session     |localhost       |
+-------------------+ ----------------+
  • mysql> delete from mysql.user where user=' ';

9.创建新的Database

  • mysql> CREATE DATABASE`项目名` (此处单引号实际应为半角,且是键盘"1"左侧这个)
  • DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 给本地用户赋予所有权限
  • mysql> grant all privileges on 项目名.* to 用户@localhost identified by '1234'
  • -> ;
  • 给账号开通外网所有权限 grant all privileges on 项目名.* to 项目名 @'%' identified by '密码'; (@’%’ 指不限制IP开通所有权限)

10.查看Database

    mysql> show databases
        -> ;
  • 用select database()语句查看当前Database
  • mysql> select database();

三.【Navicat】

1.下载

2.新建项目注意事项
????????????

  • 先点击“链接测试”(Test Connection),显示连接成功后再点击“确定”

在这里插入图片描述

  • 此图左侧Database栏的"mmall"在Mysql的Dos操作中已被添加,并被本地用户赋予权限、开通了外网所有权限;并非在Navicat中手动添加。
    在这里插入图片描述
  • mmall - 表(table) - 右击新建table
  • New table 列表中输入名:A - 保存,输入table名:tabletest
  • 返回mysql DOS
  • mysql> use mmall;
  • mysql > show tables;
+-------------------+
| Table in mmall  |
+-------------------+
| tabletest       |
+-------------------+ 

参考博客:
1.https://blog.csdn.net/glory_zhu/article/details/41596337
2.https://blog.csdn.net/qq_31832209/article/details/78424260
3.https://www.cnblogs.com/kaige123/p/5843793.html

猜你喜欢

转载自blog.csdn.net/weixin_42915286/article/details/83028265