1. 下载mysql-5.7.19-winx64.zip
官方下载地址:http://dev.mysql.com/downloads/mysql/
2. 解压到C:\Users\cjbi\mysql-5.7.19-winx64
3. 在C:\Users\cjbi\mysql-5.7.19-winx64新建my.ini配置文件,内容如下:
[Client]
# 设置3306端口
port = 3306
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\Users\cjbi\mysql-5.7.19-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\Users\cjbi\mysql-5.7.19-winx64\data
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录
# skip-grant-tables
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
4. cmd切换到mysql的bin目录,运行以下命令
mysqld --initialize
#直接初始化mysql,生成data文件夹中的文件。
注意:如果提示丢失MSVCR120.dll,是因为缺少微软VC++2013版运行库 (英文全称:Microsoft Visual C++ 2013 Redistributable Package) ,需要下载安装
mysqld -install
#安装mysql
net start mysql
#启动服务器
如果要卸载mysql可以运行一下命令
net stop mysql
#停止服务器
mysqld -remove
#卸载mysql
注意:如果安装不成功可以使用 mysqld –console 命令看控制台失败原因。
5. 登陆
此时用mysql -uroot -p登录时,不知道密码,按以下步骤设置密码。
- 编辑解压目录下的 my.ini文件,在[mysqld]这个条目下加入
skip-grant-tables
#数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录- 保存退出后重启mysql
net stop mysql
net start mysql
这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
刷新数据库
flush privileges;
退出
quit;
改好之后,再修改一下my.ini这个文件,把我们刚才加入的”skip-grant-tables”这行删除,保存退出再重启mysql就可以了。
修改完毕。重启mysql服务。
登录:
mysql -uroot -p123456
请注意:
此时的mysql用户只能是本地登陆,如果需要外网ip访问,还需要有外网访问的用户,这里不推荐修改root用户外网访问权限,那样不安全。
添加外网访问用户,
create user 'test'@'%' identified by '123456';
为用户创建数据库
create database testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
授予用户通过外网IP对于该数据库的全部权限
grant all privileges on testdb.* to 'test'@'%' identified by '123456';
授予用户在本地服务器对该数据库的全部权限
grant all privileges on testdb.* to 'test'@'localhost' identified by '123456';
授予用户在全网全部权限
grant all privileges on *.* to 'test'@'%' identified by '123456';
刷新权限
flush privileges;
退出 root 重新登录
exit;
如果提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER
statement before executing this statement
报错提示告诉我们,需要重新设置密码。那我们就重新设置一下密码,命令如下:
set password = password('123456');