千家信息网

Mysql入门基础(2)-->Mysql数据库安装

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,第二章 Mysql数据库安装声明数据库和实例:在数据库领域中有两个词很容易混淆,它们就是"实例"和数据库(database).数据库:在物理操作系统上,以文件或者其它的形式文件类型的集合,在Mysql
千家信息网最后更新 2026年10月31日Mysql入门基础(2)-->Mysql数据库安装

第二章 Mysql数据库安装

声明数据库和实例:

在数据库领域中有两个词很容易混淆,它们就是"实例"和数据库(database).

  • 数据库:在物理操作系统上,以文件或者其它的形式文件类型的集合,在Mysql中,数据库文件可以,frm,myd,myi,等文件结尾,

  • 数据库实例:是由数据库后台的进程/线程以及一共享内存区组成,这个区域可以被运行在后台线程和进程所共享,需要牢记的是,数据实例才是真正用来操作数据库文件的。

实例和数据库的通常关系是---1对1对应的,即是一个实例对用一个数据库,或者一个数据库对应一个实例。在集群的情况下可能存在一个数据库对应多个实例。

数据库系统工作原理:

(1)用户发起向数据库发起连接

(2)Mysql数据库验证权限。如果权限不够。直接拒绝,权限OK,进入下一步

(3)用户开始发起SQL语句

(4)Mysql数据库解析器开始解析SQL语句

(5) Mysql开始查询自己的本地缓存,有的话。直接反馈用户,没有的话,进入下一步

(6)经过解析器。对SQL语句进行定位,最后找到所需要的数据,在本地缓存一份,然后直接反馈给用户.

(7)Mysql版本最近的 5 .0à5.1à5.2à5.3à5.4à5.5à5.6à5.7

2.1、安装依赖包

#yum install gcc gcc-c++ ncurses-devel perl camke bison

2.2、创建用户

# groupadd mysql

# useradd mysql -g mysql -s /sbin/nologin

#mkdir -p /usr/local/mysq

#mkdir -p /data/mysqldbl

2.3、安装Mysql

×××

http://120.52.72.19/cdn.mysql.com/c3pr90ntc0td//Downloads/MySQL-5.6/mysql-5.6.31.tar.gz

#tar -xvf mysql-5.6.31.tar.gz

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DSYSCONFDIR=/etc \

-DDEFAULT_CHARSET=gbk \

-DDEFAULT_COLLATION=gbk_chinese_ci \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DMYSQL_DATADIR=/data/mysqldb \

-DMYSQL_TCP_PORT=3306

注:重新运行配置,需要删除CMakeCache.txt文件

# make && make install 编译后安装

解释:

#cmake 编译命令

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 设置mysql安装目录

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock

-DSYSCONFDIR=/etc 配置文件放在/etc/下面

-DDEFAULT_CHARSET=gbk 设置服务器的字符集。

缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_setsNaNake文件包含允许的字符集名称列表。

-DDEFAULT_COLLATION=gbk_chinese_ci 设置服务器的排序规则。

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

存储引擎选项:

MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。

静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

-DMYSQL_DATADIR=/data/mysqldb

设置mysql数据库文件目录

-DMYSQL_TCP_PORT=3306

设置mysql服务器监听端口,默认为3306

-DENABLE_DOWNLOADS=1

是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试

2.4、初始化

建立Mysql的数据存储目录

# mkdir-p /data/mysqldb/

给Mysql安装目录进行授权

# chown -R mysql:mysql /usr/local/mysql

给Mysql数据存储目录进行授权

# chown -R mysql:mysql /data/mysqldb

开始初始化

/usr/local/services/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb

复制Mysql服务启动脚本

# cp /usr/local/services/mysql/share/mysql/mysql.server /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

修改mysql服务启动脚本

# vim /etc/init.d/mysqld

basedir=/usr/local/services/mysql

datadir=/data/dbdata/

2.5、配置文件

#cp support-files/my-medium.cnf /etc/my.cnf

# vim /etc/my.cnf

[client]

port = 3306 //客户端所连接的端口号

socket = /tmp/mysql.sock //客户端所连接的sock文件存放位置

[mysqld]

#base

port = 3306 //mysql的默认端口号,可以修改

user = mysql //mysql用户指定

socket = /tmp/mysql.sock //连接所使用的端口号

pid-file = /tmp/mysql.pid //进程运行的主PID文件

basedir = /usr/local/mysql //Mysql安装目录

datadir = /data/mysqldb //Mysql数据目录

tmpdir = /opt/mysqltmp //Mysql临时表目录

open_files_limit = 10240 //打开文件句柄的数量

explicit_defaults_for_timestamp

sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

federated //支持sql语法和数据校验等.sql_mode三种模式

ANSI模式、宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或者截断保存,报"warning"警告

TRADITIONAL模式、严格模式,当向mysql数据插入数据时、进行数据的严格校验,保证数据不能插入,报error错误,用于事物时,会进行事物回滚.

STRICT_TRANS_TABLES模式。严格模式,进行数据的严格校验,错误数据不能插入,报error错误.

server_id = 706 //主从复制唯一的服务辨识号,数值位于 1 到

#replicate-do-db = posp //定义唯一复制的库

#replicate-ignore-db = mysql //定义唯一复制的库

#log-slave-updates = 1 //这个选项之再主从复制。从服务器上打开复制主的信息

event_scheduler=1 //打开时间调度器

max_connections = 2000 //#最大并发连接数,增大该值需要相应增加允许打开的文件描述符数

max_connect_errors = 10000 //如果某个用户发起的连接error超过该数值,则该用户的下次连接将被阻塞,

interactive_timeout = 600 //服务器关闭交互连接前等待活动的秒数

wait_timeout = 600 //服务器关闭非交互连接之前等待活动的秒数

skip-name-resolve //#garnt时,必须使用ip,不能使用主机名,禁用DNS解析

sync_binlog=0 //可以保证事务的安全。缺省为0

log_bin_trust_function_creators = 1 //打开mysql可自定义函数

character-set-server = utf8 //设定字符集

default_storage_engine = InnoDB //定义默认引擎

#log

log-bin = /data/mysqldb/binlog/mysql-bin //指定binlog二进制日志的文件名称

binlog_cache_size = 32m //binlog的缓存大小

max_binlog_cache_size = 10g //设定最大的binlog缓存

binlog_stmt_cache_size = 32m //设定最小的binlo缓存

table_open_cache = 2048 //表描述符缓存大小,可减少文件打开/关闭次数

max_binlog_size = 1024m //设置binlog日志文件最大为1G

binlog_format = mixed //binlog日志格式.

log_output = FILE //确认输出到日志文件

log-error = /data/mysqldb/log/mysql-error.log //mysql系统错误日志输出

slow_query_log = 1 //打开慢日志记录

slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //定义慢日志输出的路径

general_log = 0 //定义普通日志

general_log_file = /data/mysqldb/log/mysql-general-query.log //定义普通日志输出的路径

expire-logs-days = 30 //日志保留的时间为30天

relay-log = /data/mysqldb/binlog/relay-bin //定义reloa_log复制的地址

relay-log-index= /data/mysqldb/binlog/relay-bin.index //定义reloa_log索引

#buffer

sort_buffer_size = 2m //#MyISAM表发生变化时重新排序所需的缓冲。一般64M足矣

read_buffer_size = 2m //用来做MyISAM表全表扫描的缓冲大小.

read_rnd_buffer_size = 2m //#当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道

join_buffer_size = 2m //# InnoDB用来缓存数据和

net_buffer_length = 16k //执行mysqldump时,net buffer length的最大上限是16Mb,默认值是1Mb

max_allowed_packet = 512m //每个连接独立的大小.大小动态增加

bulk_insert_buffer_size = 32m //# 当突发插入被检测到时此缓冲将被分配用于myisam

max_heap_table_size = 512m//#内存表的大小

tmp_table_size = 512m//# 内部(内存中)临时表的最大大小

thread_cache_size = 100 //#缓存可重用的线程数,可以适当的调整

query_cache_size = 256m //#指定MySQL查询结果缓冲区的大小。调优可以适当调整

query_cache_limit = 10m //#缓存单条SQL的结果集上限。默认4KB。调优可以适当调整

query_cache_min_res_unit = 4k

key_buffer_size = 16m //#关键词缓冲的大小, 一般用来缓冲MyISAM表的索引块

myisam_sort_buffer_size = 64m //# 这在每个线程中被分配.所以在设置大值时需要小心

myisam_max_sort_file_size = 10g //MySQL重建索引时所允许的最大临时文件的大小如果文件大小比此值更大,索引会通过键值缓冲创建(更慢)

myisam_repair_threads = 1 //#如果一个表拥有超过一个索引, MyISAM

#innodb

innodb_file_per_table = 1 #//#可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间

innodb_data_file_path = ibdata1:2048M:autoextend //#如果你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了

innodb_log_file_size = 128m //#在日志组中每个日志文件的大小,

innodb_log_files_in_group = 3 //# 在日志组中的文件总数. 通常来说2~3是比较好的

innodb_buffer_pool_size = 1g //innodb缓存池大小

innodb_buffer_pool_instances = -1

innodb_max_dirty_pages_pct = 70 //#在InnoDB缓冲池中最大允许的脏页面的比例. 60-90都可以

#innodb_thread_concurrency = 8

innodb_flush_method = O_DIRECT

innodb_log_buffer_size = 16m # 用来缓冲日志数据的缓冲区的大小. 当此值快满时, InnoDB将必须刷新数据到磁盘上

innodb_flush_log_at_trx_commit = 2

0代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘# 2代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上

[mysql]

no-auto-rehash #可以在命令可以使用tab键补齐

prompt = (\u@\h) [\d]\_ #在Mysql命令显示主机名字

default-character-set = utf8 //设定字符集合

2.6、启动服务和设置环境变量

#:vim /etc/profile

MYSQL=/usr/local/services/mysql/bin

PATH=$PATH:$MYSQL

export PATH

#:source /etc/profile

启动服务

# /etc/init.d/mysqld start

注意:

log_slave_updates

主从复制的时候。在主(master)服务器上关闭此选项,在从(slave)上面开启此选项

2.7、本章练习题目

(1)、要求安装Mysql数据库版本号及包名为:mysql-5.1.50.tar.gz

(2)、安装目录为/usr/local/services

(3)、数据存储目录为/dbdata

(4)、配置文件存放为/etc/my.cnf

(5)、用户名为mysql

(6)、要求设置环境变量,服务加入开机自动启动,

数据 文件 数据库 日志 服务 大小 缓冲 目录 缓存 服务器 用户 实例 模式 最大 存储 字符 引擎 索引 字符集 磁盘 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 互联网是不是新科技 互联网 科技公司 杭州互联网科技公司 浩特互联网科技 润盈互联网科技 广西拼得多互联网科技有限公司 中国互联网有什么科技含量 金融科技与互联网金融相同和不同 互联网科技教育视频 南山科技园互联网公司有哪些 崇明区互联网教育科技售后服务 中国互联网十大科技股排名 北京市互联网新科技 领航科技大厦互联网公司 互联网科技企业商标注意事项 科技信息时代互联网发展 米泉互联网科技专业怎么样 陕西彩京云互联网科技有限公司 银川新华互联网科技学校招聘 富国互联网科技创新基金 汽车互联网创新科技园 昊天互联网科技有限公司 明优互联网科技有限公司 上海钢联属于互联网科技股吗 济南小医互联网科技有限公司招聘 中国科技和美国互联网 张家口科技产业互联网平台 长沙易易互联网科技有限公司 广东猫王互联网科技有限公司电话
0