安装环境信息
简单说,需要在kylinOSv10上使用普通用户及sudo权限安装MySQL5.7.x版本的数据库。进一步利用ansible进行批量数据库服务器的初始化安装(修改默认端口、修改初始密码、开放远程登录、自定义my.cnf中的各种目录路径、修改优化参数等)。
- 服务器操作系统:Kylin Linux Advanced Server V10 (Sword)
[sysma@]$ cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"
[sysma@]$ uname -a
Linux ansible.novalocal 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
- MySQL软件版本:mysql-5.7.42-linux-glibc2.12-x86_64
#文件包信息
[sysma@]$ ll -h /mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
-rwxr-xr-x 1 root root 647M Aug 23 16:18 /mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
#安装成功后登录信息
[sysma@]$ sudo mysql -uroot -p
[sudo] password for sysma: #第一个注意点:使用sudo登录mysql时,可能需要先输入sudo用户密码,而不是MySQL应用密码。
Enter password: #此处输入的才是MySQL应用密码。
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.42-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> exit;
Bye
- 操作系统用户情况:
- root用户不可登录,root用户密码未知。
- sysma用户可登录,sysma用户有sudo权限,sysma用户密码已知。
- kylinOS默认创建了mysql用户,但该mysql用户不可登录。
安装操作概览
使用sysma用户及sudo权限做了以下操作:
- 上传glibc安装包
- 创建解压目录
- 解压后复制到/usr/local/mysql
- 删除/etc/my.cnf
- 创建my.cnf并初始化数据库,启动数据库。
- 创建两个软连接。
- 默认密码登录,并修改密码。
- 安装完成。
实际操作步骤
tar -xvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.42-linux-glibc2.12-x86_64 /usr/local/mysql/
rm -rf /etc/my.cnf
cd /usr/local/mysql/
vim my.cnf
bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize --user=mysql --basedir=/usr/local/mysql
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
cp support-files/mysql.server /etc/init.d/mysql
service mysql status
service mysql start
service mysql status
cat data/mysqld.log |grep password
ln -s /usr/local/mysql/data/mysql.sock /var/lib/mysql/mysql.sock
ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock
bin/mysql -uroot -p
set password for root@'localhost' = 'yourpassword';
create user 'root'@'%' identified by 'yourpassword';
grant all privileges on *.* to 'root'@'%' with grant option;
flush PRIVILEGES;
参考my.cnf 文件
具体内容如下,已新增了优化配置
[ptmauser@mysql-0001 data]$ cat /usr/local/mysql/my.cnf
[mysqld]
#忘记密码时打开下一行注释,重启mysql,修改密码。
#skip-grant-tables
#基本配置:端口号、日志路径、数据路径、binlog配置、pid文件路径
server-id=8815
port = 5575
basedir=/usr/local/mysql/
#datadir=/usr/local/mysql/data/
#socket=/usr/local/mysql/data/mysql.sock
#log-error=/usr/local/mysql/data/mysqld.log
#pid-file=/usr/local/mysql/data/mysqld.pid
#log-bin=/usr/local/mysql/data/binlog
#slow_query_log_file=/usr/local/mysql/data/slow.log
datadir=/data/data/
socket=/data/data/mysql.sock
log-error=/data/data/mysqld.log
pid-file=/data/data/mysqld.pid
log-bin=/data/data/binlog
slow_query_log_file=/data/data/slow.log
log_slave_updates
expire_logs_days=7
binlog_format=ROW
#配合需求新增的个性化配置:取消严格区分大小写、使用utf8字符、sql模式配置
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#default_authentication_plugin=mysql_native_password //修改密码加密方式
#数据库优化选项配置:
gtid-mode = on
enforce-gtid-consistency = 1
skip_slave_start=1
innodb_buffer_pool_size = 1000M
innodb_buffer_pool_instances = 2
innodb_log_file_size = 100M
innodb_log_files_in_group = 3
innodb_log_buffer_size = 24M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT
innodb_io_capacity = 200
innodb_io_capacity_max = 600
innodb_thread_concurrency = 0
innodb_autoinc_lock_mode = 2
innodb_lock_wait_timeout = 60
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_max_dirty_pages_pct = 80
innodb_autoextend_increment = 512
innodb_checksum_algorithm = NONE
max_connect_errors = 1000
max_connections = 500
connect_timeout = 300
wait_timeout = 86400
interactive_timeout = 86400
[ptmauser@mysql-0001 data]$
注意
- kylinOS-V10-SP2已经默认创建了mysql用户
[root@localhost ilw]# cat /etc/passwd|grep mysql
mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin