ubuntu 安装mysql 5.5.28 编译安装 innodb 配置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 安装环境:ubuntu 桌面版12.10 安装版本:mysql-5.5.28.tar.gz 使用root用户安装 su root 在出现的提升中输入密码 1.安装必备工具 1.1.安装cmake编译器 apt-get install cmake 1.2.安装libncurses5-dev包 apt-get install libncurses5-dev 1.

安装环境:ubuntu 桌面版12.10

安装版本:mysql-5.5.28.tar.gz

使用root用户安装

su root
在出现的提升中输入密码

1.安装必备工具

1.1.安装cmake编译器

apt-get install cmake

1.2.安装libncurses5-dev包

apt-get install libncurses5-dev

1.3.安装bison

apt-get install bison

1.4 安装g++

apt-get install g++

2.安装mysql

2.1 下载mysql

cd /usr/local/src
wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz/from/http://cdn.mysql.com/ -O mysql-5.5.28.tar.gz

2.2 添加必要的组和拥有者

groupadd mysql
useradd -r -g mysql mysql

2.3 解压MySQL
tar -zvxf mysql-5.5.28.tar.gz

2.4、配置编译
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
cd /usr/local/src/mysql-5.5.28

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/usr/local/mysql/data \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1

make
make install

参数说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data         //数据库存放目录
-DDEFAULT_CHARSET=utf8                        //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci            //校验字符
-DEXTRA_CHARSETS=all                            //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1                        //允许从本地导入数据

注意事项:

如果出现错误,重新编译时,需要清除旧的对象文件和缓存信息(以下命令)。 
 rm -f  CMakeCache.txt

2.5、设置目录权限

 cd /usr/local/mysql
 chown -R mysql:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql

2.6、配置文件
 cp support-files/my-medium.cnf /etc/my.cnf //这个配置仅适合小内存系统(32M - 64M)

打开如下注释(红色字体必改):
[mysqld]
default-character-set = utf8   #添加编码支持

long_query_time=1#查询语句最长时间记录查询SQL语句日志
log-slow-queries=/usr/local/mysql/data/query.log

max_connections = 10000     #根据服务器性能调节
basedir = /usr/local/mysql #设置安装目录,这样在系统启动时才能正确运行到/etc/rc.d/init.d/mysql start
log-error=/usr/local/mysql/data/error.log     #错误日志
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:1G:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_open_files=300

[client] 
default-character-set = utf8    #添加编码支持


说明(本部分红色字体只是说明):

2.61、innodb_buffer_pool_size = 4G
#InnoDB用于缓存数据、索引、锁、插入缓冲、数据字典等
#如果是专用的DB服务器,且以InnoDB引擎为主的场景,通常可设置物理内存的50%
#如果是非专用DB服务器,可以先尝试设置成内存的1/4,如果有问题再调整
#默认值是8M,非常坑X,这也是导致很多人觉得InnoDB不如MyISAM好用的缘故
2.62、innodb_data_file_path = ibdata1:1G:autoextend
#InnoDB共享表空间初始化大小,默认是 10MB,也非常坑X,改成 1GB,并且自动扩展

2.63、innodb_log_buffer_size = 64M
#InnoDB的log buffer,通常设置为 64MB 就足够了

2.64、innodb_log_file_size = 256M
#InnoDB redo log大小,通常设置256MB 就足够了

2.65、innodb_log_files_in_group = 2
#InnoDB redo log文件组,通常设置为 2 就足够了

2.66、innodb_file_per_table = 1
#启用InnoDB的独立表空间模式,便于管理

2.67、innodb_status_file = 1
#启用InnoDB的status file,便于管理员查看以及监控等


2.7、设置启动脚本

cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld


2.8、创建系统数据库的表

 cd /usr/local/mysql
 ./scripts/mysql_install_db --user=mysql --ldata=/usr/local/mysql/data

2.9、启动数据库

/etc/init.d/mysqld start

3、给linux默认mysql设置root密码,开启远程访问

3.1、登录(默认没有密码的,直接回车)

/usr/local/mysql/bin/mysql -u root -p
3.2、运行命令( 123456就是设置的新密码)

方法一

mysql>use mysql;
mysql>UPDATE user SET Password = password ( '123456' ) WHERE User = 'root' ;

方法二

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

然后刷新缓存

mysql>flush privileges;

3.3、开启远程访问

方法一

mysql>grant all privileges on *.* to 'root' @'%' identified by '123456';
mysql>flush privileges;

方法二

use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
注意退出mysql命令是

mysql>quit;


4、最后重新启动一下

/etc/init.d/mysqld restart

数据库命令,开启,关闭,重启

/etc/init.d/mysqld start
/etc/init.d/mysqld stop
/etc/init.d/mysqld restart

相关数据库命令:在 后面增加|more #逐页显示,空格下一页

Mysql> show status ——显示状态信息(扩展show status like ‘XXX’)

Mysql> show variables ——显示系统变量(扩展show variables like ‘XXX’)

Mysql> show innodb status ——显示InnoDB存储引擎的状态

Mysql> show processlist ——查看当前SQL执行,包括执行状态、是否锁表等

Shell> mysqladmin variables -u username -p password——显示系统变量

Shell> mysqladmin extended-status -u username -p password——显示状态信息


参考:

http://www.cnblogs.com/chenjunbiao/archive/2011/01/24/1940256.html

http://deeplyloving.iteye.com/blog/1542234

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
存储 SQL 关系型数据库
MySQL底层概述—2.InnoDB磁盘结构
InnoDB磁盘结构主要包括表空间(Tablespaces)、数据字典(Data Dictionary)、双写缓冲区(Double Write Buffer)、重做日志(redo log)和撤销日志(undo log)。其中,表空间分为系统、独立、通用、Undo及临时表空间,分别用于存储不同类型的数据。数据字典从MySQL 8.0起不再依赖.frm文件,转而使用InnoDB引擎存储,支持事务原子性DDL操作。
229 100
MySQL底层概述—2.InnoDB磁盘结构
|
1月前
|
缓存 算法 关系型数据库
MySQL底层概述—1.InnoDB内存结构
本文介绍了InnoDB引擎的关键组件和机制,包括引擎架构、Buffer Pool、Page管理机制、Change Buffer、Log Buffer及Adaptive Hash Index。
238 97
MySQL底层概述—1.InnoDB内存结构
|
1月前
|
SQL 关系型数据库 MySQL
MySQL底层概述—10.InnoDB锁机制
本文介绍了:锁概述、锁分类、全局锁实战、表级锁(偏读)实战、行级锁升级表级锁实战、间隙锁实战、临键锁实战、幻读演示和解决、行级锁(偏写)优化建议、乐观锁实战、行锁原理分析、死锁与解决方案
103 24
MySQL底层概述—10.InnoDB锁机制
|
1月前
|
存储 缓存 关系型数据库
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
MySQL底层概述—5.InnoDB参数优化
|
1月前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
175 42
|
1月前
|
存储 SQL 关系型数据库
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
|
1月前
|
存储 缓存 关系型数据库
MySQL底层概述—3.InnoDB线程模型
InnoDB存储引擎采用多线程模型,包含多个后台线程以处理不同任务。主要线程包括:IO Thread负责读写数据页和日志;Purge Thread回收已提交事务的undo日志;Page Cleaner Thread刷新脏页并清理redo日志;Master Thread调度其他线程,定时刷新脏页、回收undo日志、写入redo日志和合并写缓冲。各线程协同工作,确保数据一致性和高效性能。
MySQL底层概述—3.InnoDB线程模型
|
1月前
|
存储 SQL 缓存
MySQL原理简介—2.InnoDB架构原理和执行流程
本文介绍了MySQL中更新语句的执行流程及其背后的机制,主要包括: 1. **更新语句的执行流程**:从SQL解析到执行器调用InnoDB存储引擎接口。 2. **Buffer Pool缓冲池**:缓存磁盘数据,减少磁盘I/O。 3. **Undo日志**:记录更新前的数据,支持事务回滚。 4. **Redo日志**:确保事务持久性,防止宕机导致的数据丢失。 5. **Binlog日志**:记录逻辑操作,用于数据恢复和主从复制。 6. **事务提交机制**:包括redo日志和binlog日志的刷盘策略,确保数据一致性。 7. **后台IO线程**:将内存中的脏数据异步刷入磁盘。
|
2月前
|
安全 关系型数据库 MySQL
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
281 16
|
2月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决