RedHat7.0 (Linux) 安装mysql
(mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar)
- 网上有很多资料关于安装的,但由于版本问题,困扰许久
- 本文提供 readHat7.0及相应的mysql,可到相应的百度云盘下载
- https://pan.baidu.com/s/15dPTThydeJOLOreMWVeaCQ
- *** 提取密码:34hr **
-
安装步骤如下:
在 /home下新建 mysql目录。将 mysql压缩包传入到该文件下。可通过WinSCP
传入到该文件夹下(不再赘述)! -
首先先查看是否已经安装了mysql ,执行命令 rpm -qa|grep mysql
-
如果什么都没显示说明没有安装过,如果已经安装了Mysql就先卸载执行命令 rpm -e --nodeps xxxxxxxx(xxxxxx为已经安装的rpm)
-
查看是否安装mariadb 系统自带的,之前安装的时候和mysql冲突,所有不用这个数据库的话也可以卸载,查看是否安装rpm -qa|grep mariadb,卸载执行rpm -e --nodeps xxxxxxxxxx
-
接下里进入 /home/mysql 命令:cd /home/mysql
-
解压 tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
-
演示图
-
解压之后又很多文件,我们只需要安装
(**注意:**下面这个图只看顺序就好了, 图片上是5.7.10.xxx, 实际上在执行命令的时候,要 替换成上图红色文字部分,只是版本变一下。下图只是展示安装顺序。) -
命令如下:(因为包的依赖管理,注意要按上面的顺序执行)
rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
… -
安装完后开始初始化数据库,进入/usr/bin
-
执行命令mysqld --initialize --user=mysql 或者mysqld --initialize-insecure --user=mysql
-
第一个命令是为root用户随机生成一个登陆密码,登陆时执行名mysql -u root -p,密码在/var/log/mysqld.log文件中可以查看(这里使用第一种方式安装)
root@localhost: f2*9Pw7smb/9
密码就为: f2*9Pw7smb/9
第二个命令不会为
root用户生成密码,登陆时执行mysql -u root--skip-password
在初始化过程中可能会出现[ERROR] --initialize specified but the data directory exists. Aborting.
遇到这种情况,就将数据目录删除或重命名后,重新再试一次。
我来简单说明一下,也就是在初始化之前,先检查一下数据目录是否存在,执行命令:ls -l /var/lib|grep mysql。若有,则执行命令:
rm -rf /var/lib/mysql,将其删除;
显示开始启动Mysql服务,执行命令 systemctl start mysqld
如果启动不起来,有可能是你的seliunx阻止了,进入/etc/seliunx/config 修改SELIUNX为disabled
然后在启动服务,启动后执行命令mysql -u root -p
输入密码就可登陆成功。
- 设置远程访问:
grant all privileges on *.* to 'root'@'%' identified by 'Crazy1234567';
为root用户设置允许远程访问, 密码为 Crazy1234567
flush privileges;
解释:
grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';
权限1,权限2..权限n代表14种权限,分别为:select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等。
all privileges代表赋予用户所有全部权限。
数据名称.表名称,如果用*.*表示,说明赋予用户服务器上所有数据库所有表的权限。
用户地址可以是localhost,可以使ip地址、机器名字、域名。也可以用'%'表示任何地址连接。
'连接口令'不能为空,否则会赋予权限失败。
eg:grant all privieges on *.* to root@localhost identified by '123123'
意思是用给来自本机localhost的用户分配权限,用root/123123密码登陆所有数据库中的所有表
附上一个最终成功的截图:
- 最后,本人安过好几次,都成功了,前提是用这个文中提供的镜像和mysql版本,别的版本的没试。