Windows下Mysql 8.0 压缩包方式的安装和配置(Linux也可参考后续配置)
1.Mysql的安装和配置
注意事项:
-
mysql8 之后并不需要my.ini,会自动的生成data文件夹在解压之后的文件,端口默认3306。若有这个文件,则初始化mysql不成功。
-
自己若新建并设置了my.ini 文件,有data文件的话,在初始化之前要删除。然后再初始化
-
在初始化之后会自动生成密码,要记下来,后续登上mysql需改密码之后才可后续操作。
-
要更改加密规则,不然无法使用工具连接mysql
安装步骤
-
下载.zip安装包 并解压
-
使用管理员身份打开cmd(电脑“开始”搜索“命令”,右键“管理员身份打开” 命令提示符),进入到mysql的bin目录。
-
初始化,并将生成的用户密码记下来(root的随机密码)
mysqld --initialize --console
-
安装服务
mysqld --install
Linux下需安装mysql和mysql-server
-
启动mysql服务
net start mysql
Linux下(如Centos)systemctl start mysqld
-
用账号和记下的密码登录即可
mysql -u root -p
-
修改root密码("123456"更换成自己要设置的密码)
alter user 'root'@'localhost' identified by '123456';
-
若此时操作报错2059,是告诉你要更改加密规则:
mysql -u root -p #登录 USE mysql; #选择数据库 ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更换加密方式设置密码,'password'改为自己的密码 FLUSH PRIVILEGES; #刷新权限
-
配置远程访问(允许除localhost的机器访问,解决 1130 - Host 'xxx' is not allowed to connect to this MySQL server):
USE mysql; #选择数据库 UPDATE user SET host = '%' WHERE user = 'root'; #设置允许任意IP访问 quit #退出并重新登录mysql mysql -u root -p #登录 GRANT ALL ON *.* TO 'root'@'%'; #给root授予所有权限和授权选项,让它可以访问和管理所有数据库和表。%表示允许所有ip FLUSH PRIVILEGES; #刷新权限
-
Centos下切换数据存储路径:
新建目录如
/home/data/mysql
,修改目录的用户和用户组为mysqlchown -R mysql:mysql /home/data/mysql
修改
/etc/my.cnt
的datadir
和socket
,改为目标路径,切换后,重启mysqld服务,查看/var/log/mysqld.log
,通过grep搜索新的初始密码systemctl restart mysqld #重启mysqld服务,如重启报错,则需关闭SELINUX #临时关闭 setenforce 0 #永久关闭 vi /etc/selinux/config 设置SELINUX=disabled cat /var/log/mysqld.log | grep 'password' #查看初始密码
登录Mysql重新配置
如不能root@localhost本机登录,则在
/etc/my.cnt
下配置[client] defalut-character-set=utf8mb4 port=3306 socket=<新的.sock路径>
DBeaver远程连接mysql报all public key...错时
在编辑连接页面,驱动管理中,设置为true
结束
2.Mysql:导入sql文件时1418错误
-
查看创建函数的功能是否开启:
mysql> show variables like '%func%'; +-----------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------+-------+ | log_bin_trust_function_creators | ON | +-----------------------------------------+-------+ 1 row in set (0.02 sec)
-
如果Value处值为OFF,则需将其开启。
mysql> set global log_bin_trust_function_creators=1;//注意分号