Centos7下安装Mysql(任意版本)--完整操作手册

测试环境Centos7.6.1810(最小安装本地的centos系统)安装Mysql5.7.26

准备工作清理环境
centos7会自带一个mariadb

查看是否已安装
rpm -qa |grep -i mysql
rpm -qa |grep -i mariadb(centos7默认系统自带的)
在这里插入图片描述

卸载自带的mariadb
yum remove mariadb-libs-5.5.60-1.el7_5.x86_64
在这里插入图片描述
方法一:完整tar包安装
1.前期准备
1.1拷贝mysql_install.sh和mysql_full.tar.gz文件至root目录下
链接:https://pan.baidu.com/s/1aFXOju1UL4RXEW1jmNp5GA
提取码:dsh1

mysql_install.sh
mysql_full.tar.gz

2.给mysql_install.sh文件赋予执行权限

chmod +x mysql_install.sh

3.然后执行mysql_install.sh文件

4.等待一会,会提示执行结果。软链已存在暂时可不理会。查看mysql进程

ps -ef|grep mysql

在这里插入图片描述
5.备注
来解析下mysql_install.sh脚本

#!/bin/bash
source /etc/profile
if [ ! -f ./mysql_full.tar.gz ];then
echo "该文件不存在,请上传当前目录!"
else
mkdir -p /data/mysql > /dev/null 2>&1       ~~创建需要安装的目录,可根据自己的需要来,如果这里目录改变记得下面的所有目录都要更改下~~  
tar -zxvf mysql_full.tar.gz -C /data/ > /dev/null 2>&1
groupadd mysql > /dev/null 2>&1
useradd -g mysql mysql > /dev/null 2>&1
chown -R mysql.mysql /data/mysql
mv -f  /data/mysql/support-files/my.cnf /etc/my.cnf
cp /data/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /etc/init.d/mysql /etc/rc3.d/S97mysql
ln -s /data/mysql/bin/mysql   /usr/bin/mysql
/data/mysql/bin/mysqld --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data --initialize-insecure > /dev/null 2>&1
service mysql start > /dev/null 2>&1
mysql -uroot -e "SET PASSWORD = PASSWORD('123456');"      ~~这里是设置密码可根据具体情况设定自己需要的,如果改那下面的密码赋权也需要更改~~ 
mysql -uroot -p123456 -e "grant all privileges on *.* to root@'%'  identified by '123456';" > /dev/null 2>&1
mysql -uroot -p123456 -e "flush privileges;" > /dev/null 2>&1
fi
result=`ps -ef|grep mysql|grep -v 'grep'|awk '{print $2}'`
if [ ! result ];then
echo "mysql启动失败,请手动重启查看告警!"
else
echo "mysql,启动成功,账号:root,密码:123456"
fi

方法二:rpm包安装(缺点需要单独指定数据存储路径)
1. 前期准备

  • 1.1. 拷贝mysql-server和mysql-client文件至root目录下
MySQL-server-5.6.26-1.el6.x86_64
MySQL-client-5.6.26-1.el6.x86_64

链接:https://pan.baidu.com/s/1aFXOju1UL4RXEW1jmNp5GA
提取码:dsh1

2. 部署MySql

  • 2.1. 安装Mysql-server

使用命令rpm -ivh MySQL-server-5.6.26-1.el6.x86_64.rpm安装Mysql-server
出现下图提示,说明已经存在一个版本的Mysql-server了(Linux自带的)
请执行rpm –e Linux自带的Mysql-server --nodeps 进行卸载
卸载系统自带的mysql
查看系统自带的mysql版本
卸载完成后继续执行命令rpm -ivh MySQL-server-5.6.26-1.el6.x86_64.rpm安装Mysql-server,成功提示如下图:
这里说明mysql-server安装成功了
安装过程中会有显示初始密码的文件路径,下面进行修改和查询用
密码文件位置

查询密码

cat /root/.mysql_secret

启动服务

service mysql start

在这里插入图片描述
如果安装sever时候报如下图错误,缺少 autoconf库
安装yum -y install autoconf
在这里插入图片描述
如果安装server出现如下错误,缺少 perl 库
安装yum install -y perl
在这里插入图片描述

如果centos7系统及以上,启动报错
在这里插入图片描述
解决办法:安装上述两个rpm安装包时,需要先将Centos7系统中的有关mysql和mariadb的文件进行删除

find / -name mysql
find / -name mariadb

查询将所有有关数据进行删除,卸载安装的mysql两个rpm包,重新安装即可。

  • 2.2. 安装Mysql-client

使用命令rpm -ivh MySQL-client-5.6.26-1.el6.x86_64.rpm安装客户端
安装mysql-client
3. 使用客户端进行数据库操作

  • 3.1. 进入数据库

命令

mysql --host=127.0.0.1 --port=3306 --user=root --password=部署Mysql时的默认密码 
  • 3.2. 首次登陆修改密码

命令

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');

如下图所示
登录和设置密码过程

  • 3.3. 创建自己需要的库,例如:我建立的库名叫mooc_cloud库

命令

create schema mooc_cloud default character set utf8 collate utf8_general_ci;
  • 3.4. 退出

命令 quit
建立库及退出

  • 3.5. 使用新密码登录mooc_cloud库

命令如下

mysql --host=127.0.0.1 --port=3306 --user=root --password=TrL6NfhLM4HzXNk --database mooc_cloud;

3.6. 如果有脚本执行脚本,如下图:
命令 mysql> \. /root/init_table.sql
命令 mysql> \. /root/initdata20150821.sql
在这里插入图片描述

  • 3.7. 赋权等操作,依次执行下述命令(赋予权限后才能使用其他客户端连接

方法一:
mysql>use mysql;
可以看到当前主机配置信息为localhost
mysql>select host from user where user=‘root’;
Host设置了“%”后便可以允许远程访问
mysql>update user set host = ‘%’ where user =‘root’;

方法二:
mysql>use mysql;
mysql>grant all on . to ‘root@%’ identified by’密码’;
mysql>update user set host = ‘%’ where user =‘root’ and host=‘localhost’;
mysql>flush privileges;
mysql>quit;

**

4.修改数据存储路径

**

  • 1.1 查看mysql存储目录

ps -ef|grep mysql
在这里插入图片描述
关闭mysql----------->service mysql stop或者kill -9 进程

  • 1.2 然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录
#cd /var/lib
#ls

运行这个命令之后就会看到mysql的目录了,然后创建目录赋予权限再执行cp命令

mkdir /home/data
chown -R mysql:mysql /home/data
#cp -a mysql    /home/ data/    

这样就把数据库复制到/home/data下面去了

注意:(-a这个参数一定要带着,否则复制过去的权限就不对了。)

  • 1.3 然后我们修改配置文件,一共有两个文件,下面我一一说明:

修改第一个文件:修改之前先备份cp /usr/my.cnf /usr/my.cnfbak

 vi /usr/my.cnf
 打开之后修改datadir的目录为/home/data/mysql
 把socket改成/home/data/mysql/mysql.sock      

#为了安全起见,你可以把原来的注释掉,然后重新加入一行,改成现在的目录

修改第二个文件: 修改之前先备份 cp /etc/init.d/mysql /etc/init.d/mysqlbak

   vi /etc/init.d/mysql

注意:准确的位置是/etc/rc.d/init.d/mysql,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射,
所以用上面的命令即可,也简单。
把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:/home/data/mysql

  • 1.4 如果在启动或登录不了数据库时候,下面需要建立一个mysql.sock的链接:
 ln -s /home/data/mysql/mysql.sock    /var/lib/mysql/mysql.sock

至此所有的修改都完成了,下面启动mysql

  service mysql start
  • 1.5 赋予权限后如果出现客户端工具navicat链接不上可以尝试如下两种方式

1、关闭防火墙
centos7关闭防火墙
systemctl stop firewalld 关闭防火墙服务
systemctl disable firewalld 开机关闭防火墙

2、在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
或者使用命令
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
service iptables restart 或者 firewall-cmd --reload

3、验证Mysql时候启动成功

netstat –nat
mysql默认端口号为3306,以上信息中出现3306端口号,则启动成功
在这里插入图片描述
4、使用navicat工具连接mysql,下面提供的navicat版本可以连接各大数据库。
链接:https://pan.baidu.com/s/1aV-NjORSwPA78VRL1qXujQ
提取码:ct7w
复制这段内容后打开百度网盘手机,操作更方便哦
在这里插入图片描述

肯定能用到技巧一

如果想单独给库建设用户及赋权

1、root用户登陆

mysql -u root -p

2、创建vc用户设置密码为jsyc@vc#!

CREATE USER 'vc'@'localhost' IDENTIFIED BY 'jsyc@vc#!';

3、赋予权限vc用户有jsyc_vc库的所有的表权限

解释:库    名.表名
      jsyc_vc.*
grant all on jsyc_vc.* to 'vc'@'%' identified by 'jsyc@vc#!';

grant all on jsyc_vc.* to 'vc'@'localhost' identified by 'jsyc@vc#!';

4、立即生效

flush privileges;

肯定能用到技巧二

如果过忘记数据库的root密码。

第一步:编辑配置文件/etc/my.cnf文件,在[mysqld]下面添加,保存退出。

vim /etc/my.cnf
skip-grant-tables

保存退出。

重启mysql服务:service mysqld restart。

第二步:进入MySQL数据库,更改root密码。

重启MySQL服务后,使用mysql命令进入MySQL命令行,更改root密码。
更改root密码:
选择 mysql 自身的数据库:

use mysql;

旧版本数据库5.6

mysql>UPDATE mysql.user SET password=PASSWORD('你的密码') where USER='root';

新版本数据库5.7以上

mysql>update user set authentication_string=password('你的密码') where user='root';

注意:必须使用PASSWORD()函数加密密码,否则登录不了。

第三步:刷新权限表:

mysql>flush privileges;

第四步:退出数据库:

quit;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值