Centos离线安装mysql
这里我们需要根据我们的操作系统版本下载数据库:
CentOS_6下载:mysql-5.7.22-1.el6.x86_64.rpm-bundle.tar
CentOS_7下载:mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar
下载地址:https://dev.mysql.com/downloads/mysql/
- CentOS自带MySQL卸载:
CentOS6.5会自带MySQL的服务,组件,客户端等是之前5.1版本所遗留的,如
不删除干净,会对以后使用的MySQL造成一定的BUG,所以我会先将之前的一些
组件目录,配置文件等删除和卸载。
删除已安装的mysql系统默认自带安装了低版本的,先查询,如果已有MySQL服务,先停
止再卸载。没有则直接安装
1、查询命令:rpm -qa | grep mysql
2、停止MySQL服务并删除命令(查出什么都用以下命令逐一删除):rpm -e 查出的信息 --nodeps
如:rpm -e mysql-server-5.1.71-1.el6.x86_64 --nodeps
rpm -e mysql-5.1.71-1.el6.x86_64 --nodeps
rpm -e mysql-libs-5.1.71-1.el6.x86_64 --nodeps
rpm -e dovecot-mysql-2.0.9-7.el6.x86_64 --nodeps
rpm -e qt-mysql-4.6.2-26.el6_4.x86_64 --nodeps
rpm -e mysql-devel-5.1.71-1.el6.x86_64 --nodeps
rpm -e rsyslog-mysql-5.8.10-8.el6.x86_64 --nodeps
3、查找之前版本的MySQL的目录并删除老版本的MySQL的文件和库
查询:find / -name mysql
将查到的文件夹删除:如:rm -rf /usr/share/mysql
rm -rf /usr/lib64/mysql
4、注意/etc目录下会包含my.cnf文件,所以也要删除:rm -rf /etc/my.cnf
5、再次查找是否安装了MySQL:rpm -qa|grep -i mysql
无显示,说明之前的环境彻底删除
二:MySQL5.7安装
- 解压包:tar -xvf mysql-5.7.22-1.el6.x86_64.rpm-bundle.tar
- 使用命令安装MySQL:rpm -ivh {-file-name}
按照依赖关系一次安装rpm包,依赖关系依次为:common→libs→client→server
rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
注:ivh中,i-install安装;v-verbose进度条;h-hash哈希校验
在安装mysql-community-libs-5.7.22-1.el7.x86_64.rpm时有可能报错:MySQL依赖错误
[root@nfs_client tools]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.22-1.el7.x86_64
mariadb-libs is obsoleted by mysql-community-libs-5.7.22-1.el7.x86_64
解决:清除yum里所有MySQL依赖包
- rpm -qa|grep mysql
- yum remove mysql-libs
清除完yum里所有mysql依赖包后,再次安装mysql组件就不会报错:
rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
注意细节:
- 执行 yum remove mysql-libs命令后,会自动删除掉 /etc/ 下的
my.cnf 文件
- 对于安装mysql组件,只有安装了 server组件才会:
- 在/etc/下生成 my.cnf 文件 和 my.cnf.d 文件夹
- 在/var/lib/下生产mysql、mysql-files、mysql-keyring三个文件夹
- 在/var/log/ 下生成 mysqld.log 文件
- 在/var/run/ 下生成 mysqld 目录
- 登录并创建MySQL密码
- 启动MySQL
安装完成后,使用命令service mysqld start 或 systemctl start
mysqld.service启动MySQL服务(如果无法启动,重启下系统)
systemctl start mysqld.service 启动mysql
systemctl status mysqld.service 查看mysql状态
systemctl stop mysqld.service 关闭mysql
查看mysql进程 ps -ef|grep mysql
查看3306端口 netstat -anop|grep 3306
- 登录MySQL修改root密码
首先查看root密码:cat /root/.mysql_secret
Eg:# The random password set for the root user at Fri Aug 30 15:57:18 2013 (local time):fMYcarvB
然后执行命令:mysql -u root -p fMYcarvB
设置root密码:SET PASSWORD=password(‘123456’)
退出,重新登录即可使用新密码登录。
- 设置远程登录:需要添加权限
方法一:
- 创建用户:
insert into mysql.user (字段1,字段2,) values(值1,值2,);
- 用户授权:
授予查询、修改权限:grant select,update on *.* to "test4"@"localhost" identified by "123456";
授予所有权限:GRANT ALL PRIVILEGES ON *.* TO "zhangsan"@"localhost" IDENTIFIED BY "123456";
刷新权限列表:flush privileges
回收用户权限:revoke 权限列表 on 库名.表名 from 用户名@主机ip
- 修改用户权限,远程连接:
ALTER USER 'yexin'@'%' REQUIRE none;
update user set host = '%' where user='root';
方法二:进入数据库,创建远程连接用户,并授权:
mysql -uroot -p; -- 连接数据库
insert into mysql.user (host,user,password) values("%","test",password("123456"));
grant all select,insert,update,delete on *.* to test@"%" identified by"123456";
flush privileges
至此,mysql部署完成。