mysql安装及配置
win下安装
这边提供一个mysql5.7的安装包:mysql5.7安装包
第一步:选项分别为服务器安装、客户端安装、完整安装、自定义安装;这边我们选择安装方式为custom。

第二步:依次点开MySQL servers——mysql server——MySQL server5.7——MySQL server5.7.44-X64
然后点击绿色箭头将选中的版本移到右边的框里,然后点击选中右侧框中的mysql server 5.7.44-x64,,再点击Advanced Options可以自定义安装路径和数据储存位置;然后点击下一步。
上面是安装路径,下方是数据储存位置
第三步:点击Execute会开始安装,等待安装完成后点击next。
选择安装类型,这边选择Development Computer
;然后点击next。
Development Computer
个人开发学习使用;Server Computer
用于FTP,email,web服务器等;Dedicated Computer
用作MySQL服务器;
第四步:到这里输入root用户密码,重复输入两次;点击next。
第五步:到这里,继续next
第六步:点击Execute,然后点击等待完成后,点击Finish,然后结束安装。
MySQL环境变量
复制完整的mysql安装路径及bin目录,如:
bash 代码:D:\Program Files\MySQL\MySQL Server 5.7\bin
- 右击此电脑,选择属性,先点击高级系统设置,再点击环境变量;
- 在系统变量中双击Path;
- 点击新建,将MySQL的安装路径粘贴上去,之后点击确定;
然后验证mysql是否配置成功,打开cmd窗口,输入以下命令进行验证:
cmd 代码:mysql -uroot -pyoupassword #youpassword为你安装mysql时设置的root用户密码
Linux下安装
待补
其他问题
navicat连接2002 - Can't connect to server on '192.168.27.130' (10061)
在mysql安装之后,我们的mysql并不会主动开启mysql远程访问权限,我们如果需要使用navicat来远程连接数据库操作的话,就需要我们主动去开启远程连接权限。这里有两种方法:
权限问题 直接赋权法:
在MySQL 8.0 及以上版本中,mysql 代码:GRANT
语句已经不允许直接包含IDENTIFIED BY
子句来设置用户密码。
mysql -uroot -pyoupassword #youpassword为你数据库root用户密码
GRANT ALL PRIVILEGES ON *.* TO “root”@”%” IDENTIFIED BY '你的root密码' WITH GRANT OPTION;
权限问题 新建用户法:
进入mysql,输入以下命令检查数据库对不同用户使用的身份验证方法:
mysql 代码:bashSELECT user,authentication_string,plugin,host FROM mysql.user;
这边可以看到root用户的登录方式为auth_socket
,并且只能在本地登录,在生产环境中可以新建一个用户并且赋予他相应权限。
第一步:查看所有数据库
mysql 代码:SHOW DATABASES;
第二步:切换数据库
mysql 代码:use mysql;
第三步:创建用户new_user
,并设置只能本地登录,登录密码为password
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
第四步:查看不同用户登录验证方式
mysql 代码:SELECT user,authentication_string,plugin,host FROM mysql.user;
这个时候可以看到新建的用户可以使用密码登录,且只能是本地登录。
第五步:创建一个新的数据库
mysql 代码:CREATE DATABASE mydatabase;
第六步:设置刚才创建的用户登陆方式
mysql 代码:update user set host='%' where user='new_user' and host='localhost';
第七步:查看不同用户登录验证方式
mysql 代码:SELECT user,authentication_string,plugin,host FROM mysql.user;
可以看到用户的登陆方式切换为了%
第七步:授权用户new_user
可以在任意主机登录,并且只能对于数据库database_name
进行所有操作的权限。
GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'%';
第八步:退出mysql
mysql 代码:exit
第九步:进入目录/etc/mysql/mysql.conf.d
,修改其目录下的文件mysqld.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
第十步:将bind-address = 127.0.0.1
注释掉(在其前面加#号)
# bind-address = 127.0.0.1
第十一步:重启数据库
bash 代码:sudo service mysql restart
至此配置结束。
权限问题 mysql8.0赋权法
本地登入mysql,更改mysql数据库里的user
表里的host
项,将localhost
改为%
mysql -uroot -pyoupassword
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
赋权
mysql 代码:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
切换root用户认证方式为caching_sha2_password
ALTER USER 'root'@'%'
IDENTIFIED WITH caching_sha2_password
BY 'your_new_password';
刷新权限
mysql 代码:FLUSH PRIVILEGES;
防火墙问题
打开3306端口
bash 代码:iptables -I INPUT -p top --aport 3306 -j ACCEPT