搭建mysql服务的脚本
---恢复内容开始---
#!/bin/bash
# 安装依赖包
yum -y install cmake make gcc gcc-c++ libaio ncurses ncurses-devel
# 判断mysql安装包是否存在,若存在,则解压后将mysql二进制包移动到/usr/local/下
cd /usr/local/src
if [ ! -f mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz ] ; then
echo '没有对应的mysql包!'
exit 1
fi
tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql
# 创建mysql用户和用户组 groupadd mysql useradd -r -g mysql mysql
# 初始化数据库,以及修改mysql目录所有文件的所属者和所属组 cd /usr/local/mysql chown -R mysql:mysql ./
# 使用错误输入重定向将包含密码的提示信息写入passwd文件中,至于为什么是错误输入重定向才能写入,我也搞不懂。。。
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2> passwd.txt
# 取出密码,注意这里awk不能用双引号,要不然不会进行截取分割。。
passwd=`cat passwd.txt | grep 'localhost:' | awk '{print $NF}'`
chown -R mysql:mysql ./
# 配置my.cnf文件
# 不开启sql严格模式 添加sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
echo "[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid" > /etc/my.cnf
# 添加开机启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i '46s#=#=/usr/local/mysql#' /etc/init.d/mysqld
sed -i '47s#=#=/usr/local/mysql/data#' /etc/init.d/mysqld
# 启动mysql,并添加开机启动
service mysqld start
chkconfig --add mysqld
# 创建软连接,便于使用命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
# 界面中显示数据库密码
echo $passwd
然后使用界面显示的数据库密码登录,并修改密码
alter user root@localhost identified by '123qqq...A';
flush privileges;