一、准备工作
1、在vmware上部署mysql服务器
2、在xshell上远程连接服务器
二、初始化配置
由于我们已经在上一次实验进行过了初始化配置(想了解本章内容可前往"Web部署"),并且编写了shell脚本,在web服务器上远程传输给mysql服务器
scp "初始化配置脚本" "mysql服务器ip地址":/root
进行初始化配置
bash init_env.sh mysql "ip地址" "网关ip"
三、安装MySQL
准备好mysql(mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz )资源包以及一键安装mysql的脚本(onekey_install_mysql_binary_v3.sh ),执行安装脚本
#!/bin/bash
#解决软件的依赖关系并且安装需要工具
yum install cmake ncurses-devel gcc gcc-c++ vim libaio lsof bzip2 openssl-devel ncurses-compat-libs net-tools -y
#解压mysql二进制安装包
tar xf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
#移动mysql解压后的文件到/usr/local下改名叫mysql
#/usr/local/mysql 是mysql的安装目录 --》门店
mv mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
#新建组和用户 mysql
groupadd mysql
#mysql这个用户的shell 是/bin/false 属于mysql组
useradd -r -g mysql -s /bin/false mysql
#关闭firewalld防火墙服务,并且设置开机不要启动
service firewalld stop
systemctl disable firewalld
#临时关闭selinux
setenforce 0
#永久关闭selinux
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
#新建存放数据的目录 --》仓库
mkdir /data/mysql -p
#修改/data/mysql目录的权限归mysql用户和mysql组所有,这样mysql用户启动的mysql进程可以对这个文件夹进行读写了
chown mysql:mysql /data/mysql/
#只是允许mysql这个用户和mysql组可以访问,其他人都不能访问
chmod 750 /data/mysql/
#进入/usr/local/mysql/bin目录
cd /usr/local/mysql/bin/
#初始化mysql
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql &>passwd.txt
#让mysql支持ssl方式登录的设置
./mysql_ssl_rsa_setup --datadir=/data/mysql/
#获得临时密码
tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}')
#$NF表示最后一个字段
# abc=$(命令) 优先执行命令,然后将结果赋值给abc
# 修改PATH变量,加入mysql bin目录的路径
#临时修改PATH变量的值
export PATH=/usr/local/mysql/bin/:$PATH
#重新启动linux系统后也生效,永久修改
echo 'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc
#复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld
cp ../support-files/mysql.server /etc/init.d/mysqld
#修改/etc/init.d/mysqld脚本文件里的datadir目录的值
sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld
#生成/etc/my.cnf配置文件
cat >/etc/my.cnf <<EOF
[mysqld_safe]
[client]
socket=/data/mysql/mysql.sock
[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m mysql>
EOF
#修改内核的open file的数量
ulimit -n 1000000
#设置开机启动的时候也配置生效
echo "ulimit -n 1000000" >>/etc/rc.local
chmod +x /etc/rc.d/rc.local
#将mysqld添加到linux系统里服务管理名单里
/sbin/chkconfig --add mysqld
#设置mysqld服务开机启动
/sbin/chkconfig mysqld on
#启动mysqld进程
service mysqld start
#初次修改密码需要使用--connect-expired-password 选项
#-e 后面接的表示是在mysql里需要执行命令 execute 执行
#set password='Sanchuang123#'; 修改root用户的密码为Sanchuang123#
mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='Sanchuang123#';"
#检验上一步修改密码是否成功,如果有输出能看到mysql里的数据库,说明成功。
mysql -uroot -p'Sanchuang123#' -e "show databases;"
bash onekey_install_mysql_binary_v3.sh
- 这里需要注意,我们执行完脚本后,需要使用su命令,重新登陆加载新的PATH
在上述脚本中,我们可以看到已经给数据库重新设置了密码,使用以下命令验证登录数据库
mysql -uroot -p'Sanchuang123#'
如果出现以上字段,结果表明你的数据库已经成功部署,接下来,就可以进一步进行数据库的操作了
四、数据库的初始化
4.1 建立初始的库
create database users;
use users;
4.2 导入数据
在web服务器上将数据库文件远程传输到mysql服务器
scp info.sql "mysql服务器ip地址":/root
在mysql服务器中将数据导入到数据库中
mysql -uroot -p'Sanchuang123#' users < info.sql
4.3 建立授权用户
建立授权的用户,允许web网站可以连接到数据库里获取数据
create user '用户名'@'指定允许访问的主机ip地址' identified by '用户密码';
建立用户后,可以使用以下命令查看授权信息
select host,user,authentication_string from user;
授予用户可以对users库里的所有的表进行全部权限的操作,包括增删改查等
grant all on users.* to '用户名'@'指定允许访问的主机ip地址';
将mysql客户端命令scp到web服务器上,这样web服务器就可以使用mysql这个客户端进行远程登录测试
cd /usr/local/mysql/bin
scp mysql "web服务器ip地址":/usr/bin