测试环境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
进行卸载
卸载完成后继续执行命令rpm -ivh MySQL-server-5.6.26-1.el6.x86_64.rpm
安装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
安装客户端
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;