-
安装环境:Centos 7
-
Mysql版本:5.7.33
-
Mysql镜像包:mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz(From:华为源)
脚本流程:
- 卸载系统自带mysql、mariadb
- 创建mysql用户
- 下载安装包,解压安装包
- 创建my.cnf文件
- 修改mysql配置文件
- 创建mysql软链接、添加开机启动
#!/bin/bash
yum remove -y mysql* mariadb*
yum install -y wget autoconf libaio
rm -rf /usr/local/mysql
groupadd mysql
useradd -g mysql -s /bin/nologin mysql -M
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
cd /usr/local/
echo "++++++++++++++++++++"
echo "开始下载数据库文件包··············"
echo "++++++++++++++++++++"
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz && echo "数据库文件下载完毕"
tar -xzvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.33-linux-glibc2.12-x86_64 mysql
rm -rf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
echo "[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/mysqld.pid
log-error = /usr/local/mysql/mysqld.err
socket = /usr/local/mysql/mysqld.sock
symbolic-links=0
user = mysql
lower_case_table_names = 1
character-set-server = utf8
explicit_defaults_for_timestamp=true
default_time_zone = '+8:00'
[mysql]
default-character-set = utf8
[client]
port = 3306
socket = /usr/local/mysql/mysqld.sock
default-character-set = utf8" > /etc/my.cnf
sed -i "46s|basedir=|basedir=$basedir|" /usr/local/mysql/support-files/mysql.server
sed -i "47s|datadir=|datadir=$datadir|" /usr/local/mysql/support-files/mysql.server
echo 'MYSQL_HOME=/usr/local/mysql' >> /etc/profile
echo 'PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile
source /etc/profile
chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql/bin/
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize-insecure
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add /etc/init.d/mysql
echo "MYSQL INSTALLED"
说明:
- 数据库文件、日志、进程文件均在 /usr/local/mysql 目录下
- 初始化数据库使用了 --initialize-insecure 参数,初次登录无密码
安装过程没有报错后,启动数据库:
service mysql start
进入数据库修改密码、开启远程访问:(首次登录无密码)
mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
Query OK, 0 rows affected (0.00 sec)mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec)mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> exit;
Bye
[root@localhost]# mysql -uroot -p
Enter password: 输入新密码Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.33 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.
……