Kylin-最小化编译安装MySQL

Kylin-最小化编译安装MySQL

编译环境部署

  • 安装编译软件
[root@server2 local]# dnf install gcc gcc-c++ ncurses ncurses-devel cmake bison perl make tar -y
Installed:
  bison-3.6.4-1.ky10.x86_64                    cmake-3.16.5-4.p01.ky10.x86_64                             cmake-data-3.16.5-4.p01.ky10.noarch            cmake-filesystem-3.16.5-4.p01.ky10.x86_64
  cmake-help-3.16.5-4.p01.ky10.noarch          cmake-rpm-macros-3.16.5-4.p01.ky10.noarch                  emacs-filesystem-1:27.1-4.ky10.noarch          gcc-c++-7.3.0-20190804.35.p02.ky10.x86_64
  jsoncpp-1.9.3-2.ky10.x86_64                  libstdc++-devel-7.3.0-20190804.35.p02.ky10.x86_64          ncurses-devel-6.2-1.ky10.x86_64                rhash-1.4.0-1.ky10.x86_64
  tar-2:1.32-1.ky10.x86_64
Complete!
  • 下载解压源码包
[root@server2 ~]# cd /usr/local
[root@server2 local]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.16.tar.gz
[root@server2 local]# wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
[root@server2 local]# tar xzvf mysql-5.7.16.tar.gz
[root@server2 local]# tar xzvf boost_1_59_0.tar.gz
  • 创建管理用户和软件放置目录
[root@server2 local]# useradd mysql -M -s /sbin/nologin
[root@server2 local]# id mysql
uid=1000(mysql) gid=1000(mysql) groups=1000(mysql
[root@localhost ~]# mkdir -p /usr/local/mysql/var
[root@localhost ~]# chown mysql:mysql -R /usr/local/mysql/
[root@localhost ~]# ll /usr/local
total 0
drwxr-xr-x 2 root  root   6 Mar  6  2021 bin
drwxr-xr-x 2 root  root   6 Mar  6  2021 etc
drwxr-xr-x 2 root  root   6 Mar  6  2021 games
drwxr-xr-x 2 root  root   6 Mar  6  2021 include
drwxr-xr-x 2 root  root   6 Mar  6  2021 lib
drwxr-xr-x 3 root  root  17 Dec 15 07:41 lib64
drwxr-xr-x 2 root  root   6 Mar  6  2021 libexec
drwxr-xr-x 3 mysql mysql 17 Dec 16 10:28 mysql
drwxr-xr-x 2 root  root   6 Mar  6  2021 sbin
drwxr-xr-x 5 root  root  49 Dec 15 07:41 share
drwxr-xr-x 2 root  root   6 Mar  6  2021 src
[root@localhost ~]#

编译安装MySQL

  • 编译安装MySQL
[root@server2 mysql]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost_1_59_0
[root@localhost mysql-5.7.16]# make && make install
[  0%] Building C object zlib/CMakeFiles/zlib.dir/adler32.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/compress.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/crc32.c.o
  • 初始化MySQL指定文件存放目录
[root@localhost mysql-5.7.16]# cd /usr/local/mysql
[root@localhost mysql]# bin/mysql_install_db --user mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var
  • 添加MySQL配置文件
[root@localhost mysql]# rm -rf /etc/my.cnf
[root@localhost mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql]# cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[root@localhost mysql]#
  • 将MySQL添加进入启动项
[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chmod a+x /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on
  • 将MySQL命令添加进入环境变量
[root@localhost mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql]# source /etc/profile
[root@localhost mysql]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/root/bin:/usr/local/mysql/bin
[root@localhost mysql]# systemctl restart mysqld
  • MySQL安全加固
[root@localhost mysql]# mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL server using password in '/root/.mysql_secret'

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
验证密码插件可以用来测试密码
并提高安全性。它检查密码的强度
并允许用户只设置那些
足够安全。您要设置验证密码插件吗?

Press y|Y for Yes, any other key for No: y
按y|Y表示是,按任何其他键表示否:Y

There are three levels of password validation policy:
密码验证策略有三个级别:

LOW    Length >= 8
长度下限> = 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
中等长度> = 8,数字,混合大小写和特殊字符
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file
强长度> = 8,数字,混合大小写,特殊字符和字典

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.
使用根用户的现有密码。
Estimated strength of the password: 100
密码的估计强度:100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
更改root用户的密码?((按y|Y表示是,按任何其他键表示否):Y
New password: TEXT123haha

Re-enter new password: TEXT123haha

Estimated strength of the password: 100
密码的估计强度:100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : yes
您希望使用提供的密码继续吗?(按y|Y表示是,按任何其他键表示否) :是
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
默认情况下,MySQL安装有一个匿名用户,
允许任何人登录MySQL,而不需要
为他们创建的用户帐户。这仅用于
测试,并使安装进行顺利一点。
您应该在进入生产之前删除它们
环境。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : yes
删除匿名用户?(按y|Y表示是,按任何其他键表示否) :
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
通常,应该只允许root用户从
“本地主机”。这确保了某人不能猜测
来自网络的root密码。

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yes
不允许远程root登录?(按y|Y表示是,按任何其他键表示否) :
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
默认情况下,MySQL附带一个名为“test”的数据库
任何人都可以访问。这也只是为了测试,
并且应该在进入生产之前移除
环境。

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yes
 - Dropping test database...
是否删除测试数据库并访问它?(按y|Y表示是,按任何其他键表示否) :是
 - 删除测试数据库...
Success.

 - Removing privileges on test database...
 - 删除测试数据库的权限...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
重新加载权限表将确保所有更改
到目前为止所做的将立即生效。

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : yse
现在重新加载权限表吗?(按y|Y表示是,按任何其他键表示否):yse
Success.

All done!

项目验证

[root@localhost mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.16

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MMS12ge**hao';
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql>

posted @ 2022-12-16 11:03  plengong  阅读(88)  评论(0编辑  收藏  举报