mysql数据库环境配置及部分问题
亲身经历了MySQL初学者的痛苦,把主要问题和解决方法整理一下。
一、解压版环境配置
1.把压缩包解压到某盘符下。
解压后在类似“E:\mysql-5.7.22-winx64”这个文件夹中可以看到以上文件。
2.配置环境变量
右键我的电脑——属性——高级系统设置——环境变量——新增Path系统变量——路径为mysql下的bin,类似“E:\mysql-5.7.22-winx64\bin”
3.设置mysql配置文件
回到mysql文件夹,新建一个my.ini文件。不显示扩展名的同学新建一个文本文档点另存为,名称为my.ini,类型为全部文件。
输入完成后保存并关闭。内容如下:
[mysqld] character-set-server=utf8 #绑定IPv4,如果是0.0.0.0则表示任意IP都可以访问,也可以指定可以访问的IP bind-address = 0.0.0.0 # 设置mysql的安装目录,即你解压缩安装包的位置 basedir = E:\mysql-5.7.22-winx64 # 设置mysql数据库的数据的存放目录 datadir = E:\mysql-5.7.22-winx64\data # 设置端口号 port = 3306 # 允许最大连接数 max_connections = 200 # 设置字符集为utf8 loose-default-character-set = utf8 #开启查询缓存 explicit_defaults_for_timestamp = true sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [client] #设置客户端字符集 default-character-set = utf8 [WinMySQLadmin] Server = E:\mysql-5.7.22-winx64\bin\mysqld.exe [mysql] default-character-set=utf8
4.安装mysql
用管理员身份运行cmd,进入到mysql下的bin,输入“mysqld -install”,完成安装。输入"mysqld --initialize"完成初始化,完成后mysql目录会生成Data目录。
注:命令提示符一定要cd进入到mysql的bin目录下。如果不慎未进入bin目录就执行了“mysqld -install”安装了服务,请在管理员身份cmd下输入 "sc delete mysql"删除服务,再回到4步骤执行。
5.设置密码
完成安装后,输入"mysql"即可进入欢迎界面,输入指令设置密码。
mysql> use mysql; mysql> update user set password=password('123') where user='root' and host='localhost'; mysql> flush privileges;
6.设置操作权限
mysql> use mysql; mysql> grant all privileges on *.* to 'root'@'%' identified by '123' with grant option; mysql> flush privileges;
二、问题及解答
问题:数据库里输入中文数据,查询显示乱码。
解决方法:
登录mysql设置字符集
让数据库支持中文编码的数据。其中gbk也可以改成UTF-8。
show variables like 'char%'; set character_set_database='gbk'; set character_set_server='gbk'; status;
问题:忘记密码
解决方法:
在cmd中进入到mysql下的bin,输入“mysqld --skip-grant-tables”
C:\Users\Kevin.L>E: E:\>cd E:\mysql-5.7.22-winx64\bin E:\mysql-5.7.22-winx64\bin>mysqld --skip-grant-tables
现在不要关闭它,打开另一个cmd,直接输入"mysql"登录后,输入
use mysql; update user set password=password("123") where user="root"; flush privileges;
关闭两个cmd,打开服务——找到mysql服务——重启——重新登录mysql
问题:改密码出现ERROR 1054(42S22) Unknown column 'password' in ‘field list’报错
原因: 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
解决方法:
输入指令:
update mysql.user set authentication_string=password('123') where user='root'; flush privileges;
最后推荐几个mysql可视化界面工具:
客户端界面基于C/S:
官方提供:MySQL Administrator、MySQL Workbench
第三方提供:Navicat、Sequel Pro、HeidiSQL、SQL Maestro MySQL Tools Family、SQLWave、dbForge Studio、DBTools Manager、MyDB Studio、Aqua Data Studio、SQLyog、MYSQL Front、SQL Buddy等。
浏览器界面基于B/S:phpMyAdmin、phpMyBackupPro、MySQL Sidu等。
此外,强大的Xshell也能连Mysql哦。