刚好需要搭建一个测试环境,记录一下搭建过程。
1.配置文件
配置文件指定一些关键的选项,其他依照默认设定
[root@mysql8 mysql]# cat /etc/my.cnf
[mysql]
user=root
password=sam123
socket=/usr/local/mysql/mysql.sock
port=3306
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql
socket=/usr/local/mysql/mysql.sock
pid-file=/usr/local/mysql/mysql.pid
log-error=/mysqlLog/logs/error.log
datadir=/mysqlData/data
tmpdir=/mysqlData/tmp
#server setting#
default_storage_engine=innodb
server_id=131
innodb_file_per_table=1
#undo setting#
innodb_undo_directory=/mysqlData/undo
#binlog setting#
log-bin=/mysqlLog/logs/mysql-bin
binlog_format=row
gtid_mode=on
enforce-gtid-consistency=true
2.新建用户及目录
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /mysqlData/{data,tmp,undo}
mkdir -p /mysqlLog/logs
chown mysql:mysql -R /mysqlData
chmod 750 -R /mysqlData
chown mysql:mysql -R /mysqlLog
chown mysql:mysql /etc/my.cnf
3.解压
下载的二进制压缩包是mysql-8.0.12-linux-glibc2.12-x86_64.tar,
tar -xf mysql-8.0.12-linux-glibc2.12-x86_64.tar
解压后会得到mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz和mysql-test-8.0.12-linux-glibc2.12-x86_64.tar.xz,再一次解压mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
tar -xJf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
最终会得到mysql-8.0.12-linux-glibc2.12-x86_64目录,将其移至/usr/local路径下,改名为mysql,并修改系统PATH。
mv mysql-8.0.12-linux-glibc2.12-x86_64 /usr/local/mysql
chown mysql:mysql -R /usr/local/mysql
echo "PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
source /etc/profile
4.万事俱备,只欠初始化
cd /usr/local/mysql
bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
bin/mysql_ssl_rsa_setup
查看error.log,会有一个临时密码,使用其登录并修改密码,才能继续使用数据库。
2018-12-05T05:25:46.612446Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.12) initializing of server in progress as process 3370
2018-12-05T05:25:51.971271Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: puHiDo_yr4z8
2018-12-05T05:26:00.470129Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.12) initializing of server has completed
5.启动实例,修改密码,喝杯咖啡
启动实例前,最好检查一下所有相关目录和文件的权限是否有误,否则chown mysql:mysql -R进行修复。
cd /usr/local/mysql
bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
启动成功后,会在error.log看到如下日志:
2018-12-05T05:27:29.317822Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.12) starting as process 3734
2018-12-05T05:27:30.896100Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-12-05T05:27:31.081157Z 0 [System] [MY-010931] [Server] /usr/local/mysql/bin/mysqld: ready for connections. Version: '8.0.12' socket: '/usr/local/mysql/mysql.sock' port: 3306 MySQL Community Server - GPL.
使用临时密码登录并修改密码:
[root@mysql8 mysql]# mysql -uroot -p'puHiDo_yr4z8'
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user user() identified by 'sam123';
Query OK, 0 rows affected (0.08 sec)
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.11 sec)
最后的收尾工作,方便日后的管理。
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysql
如此,即可通过service mysql start|stop|restart
的方式快速管理实例。