mysql8的安装注意事项:
1.初始化的时候一定要用超级管理员执行,右键以管理员方式运行,否则无法启动mysql8
2.本例子因为历史原因有脏数据才关闭了严格模式,强烈不建议关闭严格模式,关闭了严格模式会导致脏数据出现。
新入职的公司配置本地环境,今天碰到个坑,测试数据库的脏数据,因为测试数据库关闭了严格模式,导致有主键相同,或者唯一索引相同的数据,在本地的数据库(默认是开启的这样才不会把数据搞得乱七八糟,不知道是什么历史原因要关闭严格模式)怎么也插不进去,然后也就只能跟着测试的数据库同样关闭严格模式了
所谓严格模式就是插入数据时,会严格检查 ,mysql数据库需要使用非严格模式开发(mysql最近的版本默认是开启严格模式的)。
通过配置文件修改:
linux找my.cnf文件
window的修改办法是找my.ini
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
mysql8.1.15 ,应该说不用安装,官网有免安装版本,可以直接到官网找到社区版本下载就行了(企业版收费的哦),将MySQL解压到任意位置即可,我的解压缩后文件夹名字设置为E:\mysql-8.0.15-winx64,解压后得到如下文件:
新建my.ini文件:
[mysqld]
#因为项目的需要,导致要关闭严格模式,不建议关闭严格模式!!!
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\mysql-8.0.15-winx64\data
# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-8.0.15-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
然后注意,注意,注意一定要以管理员身份初始化mysql8,不然是启动不了的哦:
cmd(管理员身份运行)->
E:
cd mysql-8.0.15-winx64\bin
把E:\mysql-8.0.15-winx64\bin 添加到环境变量中
在mysql8根目录下新建my.ini文件:
然后进入bin目录 (下面命令均在mysql8的bin目录执行)
cd bin
执行1 :mysqld -install (一定要超级管理员身份执行,否则无法启动)
执行2:mysqld --initialize(一定要超级管理员身份执行,否则无法启动)
启动MySQL8服务:net start mysql (停止MySQL8服务:net stop mysql)
连接mysql8: mysql -uroot -p
密码在:E:\mysql-8.0.15-winx64\data\ 已err结尾的文件中,文件名每台机器不一样,例如我的密码是:
ok,登录上去的话,正常人应该不会用这样的密码吧,那肯定就是修改mysql8的密码了:
修改mysql 8的密码跟以前的又有点不一样哦,修改密码的格式为输入命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
提示修改成功后,quit退出,再重新登录
mysql -uroot -p
输入你刚才改的密码就行了