9de7bb31d0644e7393039222babfed10
这一个系列主要记录下各种安装的步骤,分别是源码安装,二进制安装,安装包安装,docker安装,以及多实例怎么配置,客户端的安装等等。
闲话少说,直接上步骤
CentOS8.1源码安装8.0.18单实例
下载好必须的软件包,最小化安装Centos操作系统,配置好yum源 这些必备的步骤就不写了
安装
#安装依赖包
dnf -y install wget cmake make gcc gcc-c++ git ncurses ncurses-devel libaio-devel openssl openssl-devel libtirpc-devel
#安装用户, 目录 和日志
useradd -s /sbin/nologin mysql
mkdir -p /usr/local/mysql ; chown -R mysql.mysql /usr/local/mysql ; chmod -R 755 /usr/local/mysql
mkdir -p /var/lib/mysql ; chown -R mysql.mysql /var/lib/mysql ; chmod -R 755 /var/lib/mysql
touch /var/log/mysqld.log ; chown mysql:mysql /var/log/mysqld.log
tar -zxvf rpcsvc-proto-1.4.tar.gz && cd rpcsvc-proto-1.4/ && ./configure && make && make install
cd ; tar -zxvf boost_1_70_0.tar.gz -C /usr/local/src
cd ; tar -zxvf mysql-boost-8.0.18.tar.gz && cd mysql-8.0.18 ; mkdir build ; cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_DEBUG=OFF \
-DENABLED_PROFILING=ON \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=ON \
-DWITH_FEDERATED_STORAGE_ENGINE=ON \
-DWITH_ARCHIVE_STORAGE_ENGINE=ON \
-DWITH_BLACKHOLE_STORAGE_ENGINE=ON \
-DWITH_UNIT_TESTS=OFF \
-DMYSQL_DATADIR=/var/lib/mysql \
-DWITH_BOOST=/usr/local/boost_1_70_0
make -j 4 #3个小时,呵呵
make install
配置my.cnf
cat > /etc/my.cnf <<EOF
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
server_id=3306
port=3306
mysqlx_port=33060
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
mysqlx_socket=/var/lib/mysql/mysqlx.sock
log_error=/var/log/mysqld.log
basedir=/usr/local/mysql
log_bin=binlog
log_bin_index=binlog.index
relay_log=relay-log
relay_log_index=relay-log.index
transaction-isolation=repeatable-read
user=mysql
gtid-mode=on
enforce_gtid_consistency=on
binlog_checksum=none
disabled_storage_engines="MyISAM,BLACKHOLE,ARCHIVE,MEMORY"
innodb_buffer_pool_size=4G
binlog_cache_size=1M
default_time_zone='+8:00'
federated=on
event_scheduler=on
EOF
systemd配置文件
cat > /usr/lib/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
EOF
初始化和启动
echo 'PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
source ~/.bash_profile
#初始化数据库,使用空密码
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
#启动数据库
systemctl --now enable mysqld
结束, 过程很简单,我个人的风格是尽量让命令行可直接复制粘贴,便于下次使用,所以有些编辑文件的操作,也写成命令了。例如 cat >> xxx<<EOF 等等。有的人是用vi,也是一样的,个人习惯不同。
后面再继续二进制, 安装包,docker等等安装吧。
9de7bb31d0644e7393039222babfed10谢谢