转载:https://blog.csdn.net/linmengmeng_1314/article/details/80804820
1.下载
mysql下载地址:https://dev.mysql.com/downloads/mysql/,可以选择安装版和解压版,我选择的是8.0版本的解压版。
2.配置
解压版不需要安装,随时启用,但是需要配置一些设置,我也是根据网上资料进行的。
文章地址:https://blog.csdn.net/zxs9999/article/details/68942233
1.配置MYSAL_HOME环境变量,将其添加到path中,由于8.0用的不方便,又装回5.7
MYSQL_HOME:D:\sql\mysql-5.7.23-winx64
path添加 ;%MYSQL_HOME%/bin,如果path添加不起效果,你的配置又没有错误,可以尝试直接将绝对地址添加到path,不用%MYSQL_HOME%/bin引用
2.初始化和启动Mysql服务
A.以管理员权限运行cmd
B.进入mysql的bin下
C.初始化,生成data文件夹
>mysqld --initialize-insecure (建议使用,不设置root密码),我使用的是这个默认密码是空
>mysqld --initialize (不建议使用,生成一个随机的root密码)
D.安装MySql服务
>mysqld -install
3.修改密码
cmd中启动mysql
>net start mysql
或者在电脑服务中手动开启mysql服务
启动成功后,mysql -u root -p,开始mysql的登陆,直接Enter进入mysql,这里密码初始设置的空
>set password for root@localhost = password('root'); (5.7版本修改密码)
>ALTER USER "root"@"localhost" IDENTIFIED BY "root"; (8.0版本修改密码)
密码不为空,
上面设置的默认密码是空,如果密码不是空,自己又不知道密码,可以采用忘记密码的方法处理。网上有忘记密码的方法,主要开两个cmd dos窗口,采用无密码方式登录,再修改密码,可以网上查找
- 以系统管理员身份运行cmd.
- 查看mysql是否已经启动,如果已经启动,就停止:net stop mysql.
- 切换到MySQL安装路径下:D:\sql\mysql-5.7.23-winx64\bin;如果已经配了环境变量,可以不用切换了。
- 在命令行输入:mysqld -nt --skip-grant-tables,
- 以管理员身份重新启动一个cmd命令窗口,输入:mysql -uroot -p,Enter进入数据库。
进行密码的修改
>set password for root@localhost = password('root'); (5.7版本修改密码)
>ALTER USER "root"@"localhost" IDENTIFIED BY "root"; (8.0版本修改密码)
在文章中有my.ini的配置文件,我没有配置。
3.遇到问题
1.数据库管理工具客户端测试连接报错
8.0版本的mysql在保存数据库账号密码时,采用的是caching_sha2_password加密,现在很多客户端不支持这个。如果你在数据库管理工具客户端测试连接时报错,不支持认证,需要改变密码的加密方式。
2.项目连接数据库时报时区错误
https://blog.csdn.net/github_35186068/article/details/80919528
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
出现这个错误一般是采用8.0版本的数据库和8.0版本mysql-connector-java 驱动造成的,需要在连接数据库的url中添加时区的参数
serverTimezone=GMT%2B8 GMT%2B8
代表东八区
原来的url: jdbc:mysql://localhost:3306/test
添加参数: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
或则直接改变数据库时区设置:
show variables like '%time_zone%' ;
set global time_zone='+8:00';