Mysql安装配置及常见问题解决

配置服务

  1. 在 mysql 路径下找到 my.ini 文件,如果没有可以在到其它配置好的 Mysql 环境中复制一份放入解压后的mysql文件夹;
  2. 将 basedir 改为 mysql 的实际路径,比如:
    basedir=D:\softwares\mysql
  3. 将 datadir 改为 mysql 数据库的数据存放路径,一般是设置为 mysql 路径下的 data 文件夹,比如:
    datadir=D:\softwares\mysql\data(不要手动创建 data 文件夹)
  4. 完成后以管理员身份运行 cmd 窗口,进入 mysql/bin 路径下,执行 mysqld --initialize 命令进行初始化,这一步会自动创建上一步所需的 data 目录;
  5. 运行 mysqld install 命令,将 mysql 注册到服务列表;
  6. 之后运行 net start mysql 指令启动Mysql。

配置用户

上面的步骤,虽然已经安装并启动了 Mysql ,但是还无法正常使用,需要继续进行下面的配置

  1. 运行 cmd 窗口,进入 mysql/bin 路径下(下面的操作都是在该路径下执行的)
  2. 输入指令连接本地 Mysql:mysql -u root -p
    连接远程mysql:mysql -h 192.168.11.111 -u root -p
  3. 此时密码是未知的,所以需要自己修改 root 用户的密码
    如果输入错误的密码的话,会报错:Access denied for user ‘root’@‘xxx.xxx.xxx.xxx’ (using password: YES)
  4. 以管理员角色开启 cmd,进入 mysql/bin 路径下
  5. 关闭服务:net stop mysql
  6. 跳过中间密码验证:mysqld --shared-memory --skip-grant-tables(之后会命令行会在下一行停止)
    (centos的做法是,找到/etc/my.cnf ,在[mysqld]后添加skip-grant-tables,重启mysqld。在完成密码修改后,要记得删除这一行)
  7. 开启另一个命令行窗口,输入 mysql ,进入 mysql 运行环境
  8. 将 root 用户的密码清空,update mysql.user set authentication_string=’’ where User = ‘root’;
  9. 关闭以上所有的 cmd 窗口
  10. 服务列表中开启 mysql 服务(或者执行 net start mysql 指令)
  11. 开启新的 cmd 窗口,执行登陆指令:mysql -u root -p
    此时的密码为空字符串,所以要求输入密码的话就直接回车
  12. 此时已成功,直接进入了 mysql 环境
  13. 为 root 设置密码:alter user ‘root’@‘localhost’ identified by ‘root’;
  14. 至此就完成了 Mysql 用户的配置
  15. 可以新打开一个 cmd 窗口,执行登陆指令:mysql -u root -p,然后输入设置的密码,即可成功登录 Mysql

配置远程用户

Navicat Premium 远程连接 Mysql 数据库出现报错:Host ‘’ is not allowed to connect to this MySQL server,原因是该用户没有远程连接权限,此时需要配置适用于远程地址的用户

  1. 创建新用户
    CREATE USER ‘root’@’%’ IDENTIFIED BY ‘root’; # %表示所有服务器可以访问,也可以改成指定IP
  2. 赋予权限
    grant all privileges on *.* to ‘root’@’%’; # .表示所有数据库的所有表,也可以改成类似 dbname.*,表示指定数据库的所有表

可能遇到的问题

启动服务报错:Found option without preceding group in config file

原因:mysql里面的配置文件my.ini文件格式是utf-8,只要把 my.ini 文件格式改为ANSI就可以了。

Navicat Premium 12连接MySQL数据库出现:Authentication plugin ‘caching_sha2_password’ cannot be loaded

解决方案:

  1. 管理员权限运行命令提示符,登陆MySql:mysql -u root -p
  2. 修改账户密码加密规则并更新用户密码
alter user 'root'@'localhost' identified BY 'password' password expire never;   #修改加密规则 (可选)
alter user 'root'@'localhost' identified with mysql_native_password BY 'password';   #更新一下用户的密码,修改密码加密插件
  1. 刷新权限并重置密码:flush privileges; #刷新权限
  2. 再重置下密码:alter user ‘root’@‘localhost’ identified by ‘111111’;
  3. 再次打开Navicat Premium 12连接MySql数据库,就会发现可以连接成功了。
上一篇:MemoryAnalyzer 分析spring boot heapdump提取数据库密码


下一篇:python-sqlite3操作