源编译mysql-5.1.65

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 添加用户和用户组 点击(此处)折叠或打开groupadd mysql useradd -g mysql mysql解压mysql文件&0编译源代码 点击(此处)折叠或打开tar zxvf mysql-5.
添加用户和用户组

点击(此处)折叠或打开

  1. groupadd mysql

  2. useradd -g mysql mysql

解压mysql文件&0编译源代码

点击(此处)折叠或打开

  1. tar zxvf mysql-5.1.65.tar.gz

  2. cd mysql-5.1.65


  3. ./configure --prefix=/usr/local/mysql/ --with-server-suffix=-zsd-edition --enable-assembler --enable-local-infile --enable-thread-safe-client --with-big-tables --with-charset=utf8 --with-extra-charsets=gbk,gb2312,utf8,ascii --with-readline --with-ssl --with-embedded-server --with-pthread --with-mysqld-user=mysql --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-plugins=partition,innobase,innodb_plugin > /root/mysql_setuplogs_configure.log 2>&1

查看/root/mysql_setuplogs_configure.log,如果出现libtool的问题,按下述方法可解决

查看libtool是否已经安装。

1、确认libtool是否已经安装,如果没有安装的话,则先安装libtool

点击(此处)折叠或打开

  1. # rpm -qa | grep libtool

  2. # yum -y install libtool
2、分别执行以下三条命令:

点击(此处)折叠或打开

  1. # autoreconf --force --install

  2. # libtoolize --automake --force

  3. # automake --force --add-missing

make&安装:

点击(此处)折叠或打开

  1. make > /root/mysql_setuplogs_make.log 2>&1

  2. make install > /root/mysql_setuplogs_makeinstall.log 2>&1

修改相关路径权限:

点击(此处)折叠或打开

  1. cd /usr/local/

  2. chown -R mysql:mysql mysql

  3. mkdir -p /data/mysqldata/3306
  4. cd /data/mysqldata/3306
  5. mkdir data binlog tmp innodb_ts innodb_log

  6. chown -R mysql:mysql ./
创建mysql_install_db

点击(此处)折叠或打开

  1. /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata/3306/data

配置my.cnf


点击(此处)折叠或打开

  1. vi /data/mysqldata/3306/my.cnf



  2. [client]
  3. port = 3306
  4. socket = /data/mysqldata/3306/mysql.sock
  5. character-set-server = utf8

  6. # Here follows entries for some specific programs

  7. # The MySQL server
  8. [mysqld]
  9. port = 3306
  10. user = mysql
  11. socket = /data/mysqldata/3306/mysql.sock
  12. pid-file = /data/mysqldata/3306/mysql.pid
  13. basedir = /usr/local/mysql
  14. datadir = /data/mysqldata/3306/data
  15. tmpdir = /data/mysqldata/3306/tmp
  16. open_files_limit = 10240
  17. server-id = 1333306
  18. lower_case_table_names = 1
  19. character-set-server = utf8
  20. skip-name-resolve

  21. max_connections = 3000
  22. max_connect_errors = 6000
  23. max_allowed_packet = 512M
  24. max_heap_table_size = 1024M
  25. max_length_for_sort_data = 4096
  26. back_log=100
  27. interactive_timeout = 600
  28. wait_timeout = 600

  29. default-storage-engine = InnoDB

  30. net_buffer_length = 8K
  31. sort_buffer_size = 2M
  32. join_buffer_size = 4M
  33. read_buffer_size = 2M
  34. read_rnd_buffer_size = 16M

  35. query_cache_size = 128M
  36. query_cache_limit = 2M
  37. query_cache_min_res_unit = 2k

  38. thread_cache_size = 300
  39. table_open_cache = 1024
  40. tmp_table_size = 256M

  41. #*********** Logs related settings ***********
  42. log-bin = /data/mysqldata/3306/binlog/mysql-bin
  43. log-slave-updates =1
  44. binlog_format=statement
  45. binlog_cache_size=32m
  46. max_binlog_cache_size=512m
  47. max_binlog_size=512m
  48. long_query_time = 3
  49. log_output = FILE
  50. log-error = /data/mysqldata/3306/mysql-error.log
  51. slow_query_log = 1
  52. slow_query_log_file = /data/mysqldata/3306/slow_statement.log
  53. log_queries_not_using_indexes
  54. general_log = 0
  55. general_log_file = /data/mysqldata/3306/general_statement.log
  56. expire-logs-days = 14

  57. #*********** MyISAM Specific options ***********
  58. key_buffer_size = 32M
  59. bulk_insert_buffer_size = 64M
  60. myisam_sort_buffer_size = 128M
  61. myisam_max_sort_file_size = 10G
  62. myisam_repair_threads = 1
  63. myisam_recover

  64. #*********** INNODB Specific options ***********
  65. innodb_file_per_table
  66. transaction-isolation = READ-COMMITTED

  67. innodb_additional_mem_pool_size = 16M
  68. innodb_buffer_pool_size = 1024M
  69. innodb_data_home_dir = /data/mysqldata/3306/innodb_ts
  70. innodb_data_file_path = ibdata1:2048M:autoextend

  71. innodb_file_io_threads = 4
  72. innodb_thread_concurrency = 0
  73. innodb_log_buffer_size = 16M
  74. innodb_log_file_size = 256M
  75. innodb_log_files_in_group = 2

  76. innodb_log_group_home_dir = /data/mysqldata/3306/innodb_log
  77. innodb_flush_log_at_trx_commit = 2
  78. innodb_max_dirty_pages_pct = 80
  79. innodb_lock_wait_timeout = 120
  80. innodb_flush_method=O_DIRECT

  81. [mysqldump]
  82. quick
  83. max_allowed_packet = 512M

  84. [mysql]
  85. no-auto-rehash
  86. # Remove the next comment character if you are not familiar with SQL
  87. #safe-updates

  88. [myisamchk]
  89. key_buffer_size = 32M
  90. sort_buffer_size = 20M
  91. read_buffer_size = 2M
  92. write_buffer_size = 2M

  93. [mysqlhotcopy]
  94. interactive-timeout

  95. [mysqld_safe]
  96. open-files-limit = 8192

启动mysql服务:

点击(此处)折叠或打开

  1. /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &

进入mysql:

点击(此处)折叠或打开

  1. /usr/local/mysql/bin/mysql -uroot -S /data/mysqldata/3306/mysql.sock

关闭mysql:

点击(此处)折叠或打开

  1. /usr/local/mysql/bin/mysqladmin -uroot -S /data/mysqldata/3306/mysql.sock shutdown

安装mysql后,对安全性做一点设置:

(1)删除掉不安全的用户:

点击(此处)折叠或打开

  1. drop user ''@'localhost';
  2. drop user ''@'mysql-n1';

(2)为root用户设置密码:(以root用户登录)

点击(此处)折叠或打开

  1. set password=password('zsd0507');

设置环境变量:

点击(此处)折叠或打开

  1. sudo su - mysql

  2. vi /home/mysql/.bash_profile

  3. umask 022

  4. MYSQL_BASE=/usr/local/mysql
  5. MYSQL_HOME=/usr/local/mysql

  6. PATH=$MYSQL_BASE/bin:$PATH

  7. export PATH
  8. export MYSQL_BASE MYSQL_HOME

  9. 使得环境变量生效:

  10. source /home/mysql/.bash_profile

设置启动脚本(让它跟系统一起自动启动)


点击(此处)折叠或打开

  1. cd /etc/init.d

  2. vi mysql

#!/bin/sh

mysql_port=3306
mysql_username="root"
mysql_password="zsd0507"

function_start_mysql()
{
    printf "Starting MySQL...\n"
    /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/

${mysql_port}/my.cnf 2>&1 > /dev/null &
}

function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    /usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S

/data/mysqldata/${mysql_port}/mysql.sock shutdown
}

function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 5
    function_start_mysql
}

function_kill_mysql()
{
    kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf

$2}')
    kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf

$2}')
}

if [ "$1" = "start" ]; then
    function_start_mysql
elif [ "$1" = "stop" ]; then
    function_stop_mysql
elif [ "$1" = "restart" ]; then
function_restart_mysql
elif [ "$1" = "kill" ]; then
function_kill_mysql
else
    printf "Usage: /data/mysqldata/${mysql_port}/mysql {start|stop|restart|

kill}\n"
fi

  1. chmod 755 mysql

到此,全部结束!~



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
字节图解算法小册爆火出圈!GitHub标星43k,内容竟比小说还有趣
对于一个程序来说,数据结构和算法有多重要呢? 也正是因为数据结构与算法的重要,所以我们才一定要把这个地基打牢。今天我给大家准备了一份像小说一样有趣的算法入门书,用生动的图片一点一点帮助理解算法。
|
2月前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。
|
11月前
|
自然语言处理 负载均衡 Kubernetes
分布式系统架构2:服务发现
服务发现是分布式系统中服务实例动态注册和发现机制,确保服务间通信。主要由注册中心和服务消费者组成,支持客户端和服务端两种发现模式。注册中心需具备高可用性,常用框架有Eureka、Zookeeper、Consul等。服务注册方式包括主动注册和被动注册,核心流程涵盖服务注册、心跳检测、服务发现、服务调用和注销。
413 13
|
11月前
|
传感器 机器学习/深度学习 人工智能
AI在自动驾驶汽车中的应用与未来展望
AI在自动驾驶汽车中的应用与未来展望
587 9
|
11月前
|
人工智能 监控 数据可视化
绩效考核管理的动态调整与持续优化
本文探讨了绩效考核管理在现代企业管理中的重要性,从核心原则、流程设计、指标设定、沟通反馈及持续优化五个方面进行了详细阐述,并推荐了板栗看板作为提升绩效管理效率的工具。文章强调了公平公正、客观量化、战略导向、持续反馈和结果应用的原则,以及平衡计分卡、KPI、OKR和360度反馈等多种考核方法的应用。板栗看板以其强大的可视化、动态追踪、高效沟通和数据分析功能,助力企业实现高效的绩效管理。
|
存储 SQL Cloud Native
Hologres 的架构设计与工作原理
【9月更文第1天】随着大数据时代的到来,实时分析和处理数据的需求日益增长。传统的数据仓库在处理大规模实时数据分析时逐渐显露出性能瓶颈。为了解决这些问题,阿里巴巴集团研发了一款名为 Hologres 的新型云原生交互式分析数据库。Hologres 能够支持 SQL 查询,并且能够实现实时的数据写入和查询,这使得它成为处理大规模实时数据的理想选择。
523 2
|
存储 数据处理 数据库
为什么要进行数据库设计?
本文探讨了数据库设计的核心概念,包括满足用户的信息和处理需求,以及所需的知识背景,如计算机科学、数据库原理、软件工程和应用领域知识。设计内容分为结构设计(概念、逻辑和物理设计)和行为设计(应用程序设计)。强调了结构设计与行为设计的紧密关联,并指出数据库设计是跨学科的综合性技术,重视管理和基础数据的重要性。
273 0
为什么要进行数据库设计?
|
JSON Linux Shell
vscode c++ 使用问题汇总
vscode c++ 使用问题汇总
418 0
|
JavaScript 前端开发
JavaScript 判断字符串是否包含某个字符串
JavaScript 判断字符串是否包含某个字符串
455 0
|
消息中间件 API 数据安全/隐私保护
使用 REST API 操作 RabbitMQ(二)
使用 REST API 操作 RabbitMQ
289 0
下一篇
开通oss服务