一,资源如下,里面有windows和linux版的安装软件,内含Visual C++2013中文版windows系统插件
- windows资源地址:https://download.csdn.net/download/l1o3v1e4ding/89725150
- linux(centos)资源地址:https://download.csdn.net/download/l1o3v1e4ding/89725151
二,windows系统安装mysql5.7.31
- 安装包下载
https://downloads.mysql.com/archives/installer/
下载32位就可以,下面安装的时候合一选择系统的位数.
此处下载的是以msi结尾的文件,不是zip结尾的
- 安装步骤
2.1 选择模式,此处选择的是自定义模式
2.2 根据自己的系统过滤模式
-
过滤后
-
将过滤出来的移动到右边
-
选择安装路径
-
Excute安装
-
完成后点击Next
-
点击Excute进行安装
-
完成后点击Next
-
点击Next
-
默认即可,点击Next
-
默认即可,点击Next
-
设置用户名密码,点击Next
-
点击Next
-
点击Excute进行安装
-
完成后点击finish,这样Mysql就安装完成了
三,linux系统安装mysql5.7.31
- 卸载系统自带的mariadb
我这里使用的是Centos7, 所以系统会自带Mariadb,需要先卸载掉,当然后面在安装mysql的过程中也会有提示
查询已安装的 Mariadb 安装包:
rpm -qa | grep mariadb
将所有的都卸载
yum -y remove xxx
我这里只有一个,如果有多个需要全部删除
- 下载mysql安装包 (https://www.mysql.com/downloads/)
选择开源免费的社区版进行下载:
选择操作系统:
这里没有centos版本,选择红帽就好
我这里是Centos 7.9, x86架构:
根据[版本]下载第一个rpm捆绑包,图片是8.0的,实际下载是5.7.31的
捆绑包中会包含以下内容,就不用自己一个一个下载了
mysql-community-server数据库服务器和相关工具
mysql-community-clientMySQL客户端应用程序和工具
mysql-community-libsMySQL数据库客户端应用程序的共享库
mysql-community-common服务器和客户端库的通用文件
mysql-community-libs-compat以前的MySQL安装的共享兼容性库
3.正式进行安装
在 /opt 目录下新建mysql文件夹, 将下载的安装包推送到该目录下
在 /opt/mysql目录下解压安装包:
会将.tar文件变成 .tar.gz文件
gzip mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
解压
tar -zxvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar.gz
解压之后是:
mysql-community-embedded-devel-5.7.31-1.el7.x86_64.rpm
mysql-community-libs-5.7.31-1.el7.x86_64.rpm
mysql-community-client-5.7.31-1.el7.x86_64.rpm
mysql-community-server-5.7.31-1.el7.x86_64.rpm
mysql-community-embedded-5.7.31-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.31-1.el7.x86_64.rpm
mysql-community-common-5.7.31-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm
mysql-community-devel-5.7.31-1.el7.x86_64.rpm
mysql-community-test-5.7.31-1.el7.x86_64.rpm
前置检查
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以需要给 /tmp 目录较大的权限。
chmod -R 777 /tmp
检查依赖:
命令1
rpm -qa|grep libaio
注:如果没有的话(上面有)需要执行 yum install -y libaio-devel.x86_64 进行安装
命令2
rpm -qa|grep net-tools
注:如果没有的话(上面有)需要执行 yum install net-tools 进行安装
开始安装
依次执行以下命令,注意一定要按顺序,因为会有依赖关系
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
4.验证mysql是否安装成功:
mysql --version
rpm -qa | grep -i mysql
5.服务的初始化
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:
mysqld --initialize --user=mysql
说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过期 ,登录后你需要设置一个新的密码。生成的临时密码 会在日志中记录一份。
查看密码:
cat /var/log/mysqld.log
6.启动mysql服务
systemctl start mysqld.service # 启动mysql服务
systemctl status mysqld.service # 查看mysql服务的状态
默认情况下mysql服务是开机自启的
systemctl list-unit-files | grep mysqld.service
如不是enabled可以运行如下命令设置开机自启动
systemctl enable mysqld.service
7.登录mysql
用前面我们查看的密码进行登录
mysql -uroot -p
输入密码
8.重置密码
执行了一个命令提示我们要修改密码(因为初始化密码默认是过期的,所以查看数据库会报错)
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';
重新登录一下mysql即可
验证:查看数据库表数量
SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname';
9.远程连接
云服务器上,开启防火墙3306端口
测试连接:失败
测试连接失败, 这是由于Mysql配置了不支持远程连接
Linux中不允许远程主机通过root用户登录问题
可以看到root用户对应的主机是localhost也就是自身主机
Host列指定了允许用户登录所使用的IP,比如User=root Host=192.168.1.1, 意思就是说root用户只能通过192.168.1.1的客户端去访问; User=root Host=localhost,表示只能通过本机客户端去访问。而 %是个通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果 Host=% ,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。
我们需要将mysql数据库user表中的root用户这个记录对应的主机进行修改
update user set host='%' where user='root';
修改成功
刷新一下权限:
flush privileges;
此时,再测试连接
新增用户admin命令:CREATE USER ‘admin’@‘%’ IDENTIFIED BY ‘Admin@123’;
给admin用户权限:grant all privileges on . to ‘admin’@‘%’ with grant option;
刷新一下权限:FLUSH PRIVILEGES;
- Centos7解决MySQL登录ERROR 1045 (28000) Access denied for user ‘’@‘localhost’ (using passwor)问题
步骤一:屏蔽权限,输入命令vim /etc/my.cnf打开配置文件;
步骤二:修改内容,在[mysqld]下末尾追加一行skip-name-resolve,如下图
然后保存退出。
步骤三:重启mysql服务,service mysqld restart
步骤四:登录mysql,输入mysql -u root mysql并回车,此时登录成功。
步骤七:上述成功之后,打开屏蔽权限,输入命令vim /etc/my.cnf打开配置文件;
删除[mysqld]下末尾一行的skip-name-resolve并保存退出。
步骤八:退出,用navicat或宝塔试试吧