windows安装解压版mysql
记录下用批处理安装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