MySQL安装配置与常见问题

mysql安装及配置

win下安装

这边提供一个mysql5.7的安装包:mysql5.7安装包

第一步:选项分别为服务器安装、客户端安装、完整安装、自定义安装;这边我们选择安装方式为custom

mysql安装方式

第二步:依次点开MySQL servers——mysql server——MySQL server5.7——MySQL server5.7.44-X64

mysql版本选择

然后点击绿色箭头将选中的版本移到右边的框里,然后点击选中右侧框中的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目录,如:

D:\Program Files\MySQL\MySQL Server 5.7\bin
  1. 右击此电脑,选择属性,先点击高级系统设置,再点击环境变量
  2. 系统变量中双击Path
  3. 点击新建,将MySQL的安装路径粘贴上去,之后点击确定

然后验证mysql是否配置成功,打开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 及以上版本中,GRANT语句已经不允许直接包含IDENTIFIED BY子句来设置用户密码。
mysql -uroot -pyoupassword        #youpassword为你数据库root用户密码
GRANT ALL PRIVILEGES ON *.* TO “root”@”%” IDENTIFIED BY '你的root密码' WITH GRANT OPTION;
权限问题 新建用户法:

进入mysql,输入以下命令检查数据库对不同用户使用的身份验证方法:

bashSELECT user,authentication_string,plugin,host FROM mysql.user;

mysql登录不同用户身份验证方法

这边可以看到root用户的登录方式为auth_socket,并且只能在本地登录,在生产环境中可以新建一个用户并且赋予他相应权限。

第一步:查看所有数据库

SHOW DATABASES;

第二步:切换数据库

use mysql;

第三步:创建用户new_user,并设置只能本地登录,登录密码为password

CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';

第四步:查看不同用户登录验证方式

SELECT user,authentication_string,plugin,host FROM mysql.user;

这个时候可以看到新建的用户可以使用密码登录,且只能是本地登录。

第五步:创建一个新的数据库

CREATE DATABASE mydatabase;

第六步:设置刚才创建的用户登陆方式

update user set host='%' where user='new_user' and host='localhost';

第七步:查看不同用户登录验证方式

SELECT user,authentication_string,plugin,host FROM mysql.user;

可以看到用户的登陆方式切换为了%

第七步:授权用户new_user可以在任意主机登录,并且只能对于数据库database_name进行所有操作的权限。

GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'%';

第八步:退出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

第十一步:重启数据库

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;

赋权

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';

刷新权限

FLUSH PRIVILEGES;

防火墙问题

打开3306端口

iptables -I INPUT -p top --aport 3306 -j ACCEPT

评论区
头像
Server provider Google Analytics
本站由又拍云提供CDN加速/云储存服务