windows下noinstall方式安装mysql5.7
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
注:根据各自电脑系统下载32位或64位。
下载解压到:D:\Database\mysql\
解压后bin的路径为:D:\Database\mysql\mysql-5.7.22-winx64\bin
添加配置文件D:\Database\mysql\mysql-5.7.22-winx64\my.ini
注:特别注意是ini的文件扩展名,一般呈现齿轮状态!!!
####################配置文件开始###################
[client]
default-character-set=utf8
[mysqld]
port=3306
basedir ="D:\Database\mysql\mysql-5.7.22-winx64"
datadir ="D:\Database\mysql\mysql-5.7.22-winx64/data/"
tmpdir ="D:\Database\mysql\mysql-5.7.22-winx64/data/"
socket ="D:\Database\mysql\mysql-5.7.22-winx64/data/mysql.sock"
log-error="D:\Database\mysql\mysql-5.7.22-winx64/data/mysql_error.log"
#skip-grant-tables=1
#server_id = 2
#skip-locking
max_connections=100
table_open_cache=256
query_cache_size=1M
tmp_table_size=32M
thread_cache_size=8
innodb_data_home_dir="D:\Database\mysql\mysql-5.7.22-winx64/data/"
innodb_flush_log_at_trx_commit =1
innodb_log_buffer_size=128M
innodb_buffer_pool_size=128M
innodb_log_file_size=10M
innodb_thread_concurrency=16
innodb-autoextend-increment=1000
join_buffer_size = 128M
sort_buffer_size = 32M
read_rnd_buffer_size = 32M
max_allowed_packet = 32M
explicit_defaults_for_timestamp=true
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
####################配置文件结束###################
在下载的zip包中已不含data目录,需要初始化一下(从doc窗口进入到bin的路径):
mysqld --initialize
服务注册
mysqld install MySQL --defaults-file="D:\Database\mysql\mysql-5.7.22-winx64\my.ini" //删除可以用 mysqld remove
注:如果原来有这个服务,有可能会提示已经存在这个服务,可以使用指令删除:
sc delete 服务名
将mysql bin的路径加入path环境变量
右键<我的电脑> --> 属性 --> 高级系统设计 --> 环境变量 --> 在系统变量里找到path打开,新增,然后将上面bin的路径复制粘贴(如原来有mysql的,但已经不再使用,可直接将它修改);
这样就可以直接使用mysql的命令,不用进到具体的路径;
启动服务之前在my.ini文件添加参数skip-grant-tables=1,达到不使用密码登录数据库,以便于修改root密码;
启动mysql服务
C:\WINDOWS\system32>net start mysql
注:如遇到Mysql服务一直处于启动中,可使用:<
tskill pid号>来强制停止一直在启动中的服务。
修改密码
mysql> update mysql.user set authentication_string=password('root') where user='root';
*注:5.7版本的mysql数据库下的user表中已经没有Password字段,而是将加密后的用户密码存储于authentication_string字段
刷新权限
mysql> flush privileges;
退出mysql
mysql> quit; //或使用exit
停止mysql服务
C:\WINDOWS\system32>net stop mysql
启动服务之前将上面添加到my.ini文件的参数skip-grant-tables=1删除或注释掉
启动mysql服务
C:\WINDOWS\system32>net start mysql
也不知道是5.7版本有点问题还是什么情况,如果直接使用数据库有可能会报错:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databaes' at line 1
上面错是登录进来后,直接使用:show databases报的错;
再次修改root密码
mysql> alter user 'root'@'localhost' identified by 'root';
刷新权限
mysql> flush privileges;
再次验证是否正常使用
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
到这里noinstall配置完成。