windows安装解压版mysql

时间:2021-08-22 20:15:02

记录下用批处理安装mysql5.7.18的过程与踩到的坑

先在安装目录新建文件my.ini

[mysql]
default-character-set=utf8
basedir=TODO
datadir=TODO\data
[mysqld]
port=3306
character-set-server=utf8
default-storage-engine=INNODB

mysqld install [service-name]

这里可以通过参数指定service-name,不同的服务名+不同的端口号则可实现在一台主机安装多个mysql

mysqld --initialize-insecure

初始化data文件夹时使用的mysqld --initialize的情况下,mysql会为root用户随机生成一个密码并写到log中,需要加上--console参数才能在控制台中看到生成的密码,而--initialize-insecure则默认密码为空字符串

With --initialize but not --initialize-insecure, the server generates a random password, marks it as expired, and writes a message displaying the password:

修改root密码

mysqladmin -uroot password "yourNewPassword" --port=3307

注意这里修改了密码后还是只能localhost登录,如果需要通过ip登录,则先通过mysql -uroot -p登录后执行下面的命令

mysql> CREATE USER 'NewUser'@'localhost' IDENTIFIED BY 'NewPassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;
mysql> CREATE USER 'NewUser'@'%' IDENTIFIED BY 'NewPassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' WITH GRANT OPTION;

以上代码即可创建一个新用户并允许ip和localhost登录,如果想要root通过ip登录则只用创建一个运行ip登录的新root用户并授权即可

启动服务

net start mysql

参考

mysqld参数

host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server

如果mysql服务卡死,删除了服务却仍然显示正在启动,可以重启电脑解决,也可以通过sc queryex [myservicename]查找服务的pid,再通过taskkill /f /pid [pid]杀掉

安装多个mysql在使用mysqld时需要加上--defaults-file=指定配置文件

[ERROR]:operating system error number 87

解决方案:

添加如下配置,第一行可能不用添加

innodb_lock_wait_timeout = 50
innodb_flush_method=normal

参考