Centos 7.6 下Mysql8.0.16编译安装
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,Centos 7.6 下Mysql8.0.16编译安装1.最小化安装系统2.安装基础包yum -y install ntpdate gcc gcc-c++ ncurses ncurses-devel
千家信息网最后更新 2025年02月04日Centos 7.6 下Mysql8.0.16编译安装
Centos 7.6 下Mysql8.0.16编译安装
1.最小化安装系统
2.安装基础包
yum -y install ntpdate gcc gcc-c++ ncurses ncurses-devel cmake readline-devel zlib.x86_64 zlib-devel.x86_64 bison libcurl-* net-tool* tree nmap sysstat lrzsz dos2unix telnet.x86_64 nethogs iftop iotop unzip ftp.x86_64 xfs* expect vim wget psmisc openssh-client* libaio libaio1 libnuma openssl-devel bzip2
3.基础环境配置
systemctl stop firewalldsystemctl disabled firewalldsystemctl stop postfixsystemctl disable postfixsed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config && cat /etc/selinux/config >> ${tmplog_dir}/base.log 2>&1setenforce 0getenforceuseradd -M -s /sbin/nologin mysqlmkdir -pv /data/{conf,dumpdir,backupsets,scripts,mysql3306/{data,tmp,logs}}
4.内核参数修改
echo "vm.swappiness=10">>/etc/sysctl.confecho "net.ipv4.tcp_tw_recycle=1">>/etc/sysctl.confecho "net.ipv4.tcp_tw_reuse=1">>/etc/sysctl.confecho "vm.dirty_background_ratio=8">>/etc/sysctl.confecho "* soft nofile 1024000" >>/etc/security/limits.confecho "* hard nofile 1024000" >>/etc/security/limits.conf
数据盘挂挂载参数
rw,noatime,nodiratime,nobarrier
5.升级gcc
mkdir /usr/local/tools && cd /usr/local/toolswget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.5.0/gcc-5.5.0.tar.xztar xf gcc-5.5.0.tar.xzcd gcc-5.5.0./contrib/download_prerequisitesmkdir build && cd build../configure --enable-checking=release --enable-languages=c,c++ --disable-multilibmake && make install
6.升级cmake
建议另外开一个session防止环境变量未生效
cd /usr/local/toolswget https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5.tar.Z./bootstrapmake && make install
如果出现以下错误
ibstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./destructor)
处理如下:
find / -name "libstdc++.so*"mv /usr/lib64/libstdc++.so.6.0.21 /tmp/cp /usr/local/tools/gcc-5.5.0/build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64/mv /usr/lib64/libstdc++.so.6 /tmp/ln -s libstdc++.so.6.0.21 libstdc++.so.6
7.编译安装Mysql
cd /usr/local/toolstar xf mysql-boost-8.0.16.tar.gzcd mysql-8.0.16cmake . \-DWITH_BOOST=/usr/local/tools/mysql-8.0.16/boost/boost_1_69_0 \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mysql3306/data \-DWITHOUT_CSV_STORAGE_ENGINE=1 \-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SSL=system \-DCMAKE_CXX_COMPILER=/usr/local/bin/g++ \-DCMAKE_C_COMPILER=/usr/local/bin/gccmake -j 8make install
8.生成配置文件
注:采用叶总的模板生成的(http://imysql.cn/my_cnf_generator)
cat /data/conf/my3306.cnf[client]port = 3306socket = /data/mysql3306/data/mysql.sock[mysql]prompt="\u@netdatdb01-137-32 \R:\m:\s [\d]> "no-auto-rehash[mysqld]user = mysqlport = 3306basedir = /usr/local/mysqldatadir = /data/mysql3306/datatmpdir = /data/mysql3306/tmpsocket = /data/mysql3306/data/mysql.sockpid-file = netdatdb01-137-32.pidcharacter-set-server = utf8mb4skip_name_resolve = 1#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数default_time_zone = "+8:00"open_files_limit = 65535back_log = 1024max_connections = 512max_connect_errors = 1000000table_open_cache = 1024table_definition_cache = 1024table_open_cache_instances = 64thread_stack = 512Kexternal-locking = FALSEmax_allowed_packet = 32Msort_buffer_size = 4Mjoin_buffer_size = 4Mthread_cache_size = 768interactive_timeout = 600wait_timeout = 600tmp_table_size = 32Mmax_heap_table_size = 32Mslow_query_log = 1log_timestamps = SYSTEMslow_query_log_file = /data/mysql3306/slow.loglog-error = /data/mysql3306/error.loglong_query_time = 0.1log_queries_not_using_indexes =1log_throttle_queries_not_using_indexes = 60min_examined_row_limit = 100log_slow_admin_statements = 1log_slow_slave_statements = 1server-id = 3306log-bin = /data/mysql3306/logs/mybinlogsync_binlog = 1binlog_cache_size = 4Mmax_binlog_cache_size = 2Gmax_binlog_size = 1G#注意:MySQL 8.0开始,binlog_expire_logs_seconds选项也存在的话,会忽略expire_logs_days选项expire_logs_days = 7master_info_repository = TABLErelay_log_info_repository = TABLEgtid_mode = onenforce_gtid_consistency = 1log_slave_updatesslave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN'binlog_format = rowbinlog_checksum = 1relay_log_recovery = 1relay-log-purge = 1key_buffer_size = 32Mread_buffer_size = 8Mread_rnd_buffer_size = 4Mbulk_insert_buffer_size = 64Mmyisam_sort_buffer_size = 128Mmyisam_max_sort_file_size = 10Gmyisam_repair_threads = 1lock_wait_timeout = 3600explicit_defaults_for_timestamp = 1innodb_thread_concurrency = 0innodb_sync_spin_loops = 100innodb_spin_wait_delay = 30transaction_isolation = REPEATABLE-READ#innodb_additional_mem_pool_size = 16Minnodb_buffer_pool_size = 2867Minnodb_buffer_pool_instances = 4innodb_buffer_pool_load_at_startup = 1innodb_buffer_pool_dump_at_shutdown = 1innodb_data_file_path = ibdata1:1G:autoextendinnodb_flush_log_at_trx_commit = 1innodb_log_buffer_size = 32Minnodb_log_file_size = 2Ginnodb_log_files_in_group = 2innodb_max_undo_log_size = 4Ginnodb_undo_directory = /data/mysql3306/data/undologinnodb_undo_tablespaces = 95# 根据您的服务器IOPS能力适当调整# 一般配普通SSD盘的话,可以调整到 10000 - 20000# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000innodb_io_capacity = 4000innodb_io_capacity_max = 8000innodb_flush_sync = 0innodb_flush_neighbors = 0innodb_write_io_threads = 8innodb_read_io_threads = 8innodb_purge_threads = 4innodb_page_cleaners = 4innodb_open_files = 65535innodb_max_dirty_pages_pct = 50innodb_flush_method = O_DIRECTinnodb_lru_scan_depth = 4000innodb_checksum_algorithm = crc32innodb_lock_wait_timeout = 10innodb_rollback_on_timeout = 1innodb_print_all_deadlocks = 1innodb_file_per_table = 1innodb_online_alter_log_max_size = 4Ginnodb_stats_on_metadata = 0#注意:MySQL 8.0.16开始删除该选项#internal_tmp_disk_storage_engine = InnoDB# some var for MySQL 8log_error_verbosity = 3innodb_print_ddl_logs = 1binlog_expire_logs_seconds = 604800#innodb_dedicated_server = 0innodb_status_file = 1#注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log-error文件增长较快innodb_status_output = 0innodb_status_output_locks = 0#performance_schemaperformance_schema = 1performance_schema_instrument = '%memory%=on'performance_schema_instrument = '%lock%=on'#innodb monitorinnodb_monitor_enable="module_innodb"innodb_monitor_enable="module_server"innodb_monitor_enable="module_dml"innodb_monitor_enable="module_ddl"innodb_monitor_enable="module_trx"innodb_monitor_enable="module_os"innodb_monitor_enable="module_purge"innodb_monitor_enable="module_log"innodb_monitor_enable="module_lock"innodb_monitor_enable="module_buffer"innodb_monitor_enable="module_index"innodb_monitor_enable="module_ibuf_system"innodb_monitor_enable="module_buffer_page"innodb_monitor_enable="module_adaptive_hash"[mysqldump]quickmax_allowed_packet = 32M
9.初始化数据库
mkdir -pv /data/{mysql3306/{data,logs,tmp},conf,scripts,dumpdir}/usr/local/mysql/bin/mysqld --defaults-file=/data/conf/my3306.cnf --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3306/data
10.配置启动脚本
#!/bin/shport="3306"my_lp="3306_system"mysql_bin="/usr/local/mysql/bin/"mysql_sock="/data/mysql${port}/data/mysql.sock"config_file="/data/conf/my3306.cnf"#start Mysql Servicesfunction_start_mysql(){ if [ ! -e "$mysql_sock" ];then printf "Starting MySQL_3306 ...\n" ${mysql_bin}/mysqld --defaults-file=${config_file} 2>&1 > /dev/null & else printf "MySQL_3306 is running...\n" exit fi}#stop Mysql Servicesfunction_stop_mysql(){ if [ ! -e "$mysql_sock" ];then printf "MySQL_3306 is stopped...\n" exit else printf "Stoping MySQL_3306...\n" ${mysql_bin}/mysqladmin --login-path=${my_lp} -S ${mysql_sock} shutdown fi}#restart Mysql Servicesfunction_restart_mysql(){ printf "Restarting MySQL_3306...\n" function_stop_mysql sleep 2 function_start_mysql}case $1 instart) function_start_mysql;;stop) function_stop_mysql;;restart) function_restart_mysql;;*) printf "Usage: /data/scripts/mysql3306 {start|stop|restart}\n"esacchmod a+x /data/scripts/mysql3306
11.启动服务
/data/scripts/mysql3306 start
12.修改密码
mysql -uroot -p -S /data/mysql3306/data/mysql.sockalter user user() identified by "netdata";
13.设置login-path
mysql_config_editor set --login-path=3306_root -uroot -p -S /data/mysql3306/data/mysql.sock
14.设置环境变量
echo "alias mysql3306='mysql --login-path=3306_root --defaults-file=/data/conf/my3306.cnf --default-character-set=utf8mb4'">>~/.bashrcsource ~/.bashrc
调整
配置
参数
数据
环境
编译
变量
基础
数据库
文件
升级
服务
生成
普通
最小
适当
内核
实际
密码
建议
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器自动同步数据库
工业平板用什么软件开发
富士通服务器电话
用什么软件开发大数据
青海省云主机服务器
i73930k是服务器u吗
数据库知识app
永辉软件开发
医疗器械 网络安全 制度
数据库中的窗体的系统实现
管理服务器启动的慢
华为 服务器 价格
网站引入数据库
网络安全法什么时间正式实施的
游戏几百个服务器是如何管理的
服务器网络监控工具
发改委网络安全总结报告
外贸手机应用软件开发
如何创建数据库连接
数据库行列转换技术
保利网络技术
吴江软件开发技术
美图秀秀不能与服务器联系
济南计算机网络技术老师
web服务器网站扩展
有关网络安全的合理化建议
mfc电路图软件开发
人多打车用什么软件开发
阿里云服务器 个人网站
服务器怎么查看telnet状态