一、.创建Mysql管理用户,组和对应目录
1、添加用户组:groupadd mysql
2、添加用户到用户组:useradd -g mysql -s /sbin/nologin mysql
3、创建mysql的基础目录:mkdir -p /kingdee/mysql
4、将/kingdee/mysql目录的权限赋予mysql用户 chown -R mysql.mysql /kingdee/mysql
二、编译安装mysql
1、下载安装包mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz
2、解压安装包 tar -zxvf mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz
3、将mysql安装文件移动到usr/local/mysql中 mv mysql-5.6.17-linux-glibc2.5-x86_64 /usr/local/mysql
4、将mysql的配置文件拷贝到etc目录下 cd /usr/local/mysql/support-files mv cp my-default.cnf /etc/my.cnf
5、将启动文件放到cp /kingdee/init_install/mysql/mysql.server /etc/rc.d/init.d/mysqld
6、更改mysql的启动文件权限 chmod 755 /etc/rc.d/init.d/mysqld
7、设置开机自启动 chkconfig mysqld on
三、修改相关配置和启动服务
1、修改目录的所有者
cd /usr/local/mysql
chown -R mysql:mysql ./
2、初始化数据库 ./scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/kingdee/mysql --user=mysql
3、启动mysql服务 service mysqld start
4、重新设置密码 /usr/local/mysql/bin/mysqladmin -uroot password 密码
5、设置远程连接的权限
/usr/local/mysql/bin/mysql -uroot -p 密码
grant all on *.* to 'root'@'%' identified by '密码'
四、配置文件my.cnf
[client] port=3306 socket=/usr/local/mysql_install/mysql/mysql.sock # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/usr/local/mysql_install/mysql/mysql.sock [mysqld] ##########数据库的基础配置############# port=3306 user=mysql socket=/usr/local/mysql_install/mysql/mysql.sock #设置mysql安装目录 basedir=/usr/local/mysql_install/mysql #设置mysql的数据库的数据存储目录 datadir=/usr/local/mysql_install/mysql/data #为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); #Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。 #pid-file=filename log-error=error.log ################语言设置##################### # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 #忽略大小写 lower_case_table_name=1 #该mysql实例的ID,一般通过ip来设置 server-id=192.168.79.4 ##########################内存管理、优化、查询缓存区########################## #允许最大连接数 max_connections=3000 #对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。 #如需对该主机进行解禁,执行:FLUSH HOST max_connect_errors=30 #客户与服务器之间交换的数据包的最大长度,这个数字至少应该大于客户程序将要处理的最大BLOB块的长度。 #这个选项的默认设置是1MB。 max_allowed_packet=32M # 一个事务,在没有提交的时候,产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘。 #默认binlog_cache_size大小32K binlog_cache_size = 4M #HEAP数据表的最大长度(默认设置是16M); 超过这个长度的HEAP数据表将被存入一个临时文件而不是驻留在内存里。 max_heap_table_size = 128M # 独立的内存表所允许的最大容量 #MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度, #首先看是否可以让MySQL使用索引而不是额外的排序阶段 sort_buffer_size = 16M # 排序缓冲被用来处理类似ORDER BY以及GROUP BY队列所引起的排序 # 这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间 #,那么客户端的线程将被放到缓存中, # 如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求, #那么这个线程将被重新创建,如果有很多新的线程, # 增加这个值可以改善系统性能.通过比较Connections和Threads_created状态的变量, #可以看到这个变量的作用。(–>表示要调整的值) # 根据物理内存设置规则如下: # 1G —> 8 # 2G —> 16 # 3G —> 32 # 大于3G —> 64 thread_cache_size = 16 # 我们在cache中保留多少线程用于重用 #在参加JOIN操作的数据列没有索引时为JOIN操作分配的缓存区长度(默认设置是128K)。 join_buffer_size = 16M # 此缓冲被使用来优化全联合(full JOINs 不带索引的联合). #查询缓存区的最大长度(默认设置是0,不开辟查询缓存区)。 query_cache_size = 128M # 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次 #同样查询的时候不再执行直接返回结果. #允许临时存放在查询缓存区里的查询结果的最大长度(默认设置是1M)。 query_cache_limit = 4M # 只有小于此设定值的结果才会被缓冲 #查询缓存区的工作模式:0, 禁用查询缓存区; 1,启用查询缓存区(默认设置); 2,”按需分配”模式, #只响应SELECT SQL_CACHE命令。 query_cache_type=1 thread_stack = 512K # 线程使用的堆大小. 此容量的内存在每次连接时被预留. #临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为 #MyISAM数据表并存入一个临时文件。 tmp_table_size = 128M # 内部(内存中)临时表的最大大小 用来存放索引区块的RMA值(默认设置是8M)。 key_buffer_size = 128M # 关键词缓冲的大小, 一般用来缓冲MyISAM表的索引块. # MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。 #read_buffer_size变量控制这一缓冲区的大小。 read_buffer_size = 2M ## MySQL的随机读缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。 #进行排序查询时, read_rnd_buffer_size=8M #同时打开的数据表的数量(默认设置是64)。 #table_cache=64 #临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为MyISAM数据表 #并存入一个临时文件。 tmp_table_size=32 #########日志############# #每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法, #但效率最低。默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作。 #sync_binlog=n #把执行用时超过long_query_time变量值的查询命令记入日志(慢查询日志); 如果没有给出file参数, #MySQL将在数据库目录里创建一个hostname-slow.log文件作为这种日志文件. #log-slow-queries=filename #慢查询的执行用时上限(默认设置是10s)。 #long_query_time=n #把对数据进行修改的所有SQL命令(也就是INSERT、UPDATE和DELETE命令)以二进制格式记入日志(二进制变更日志, #binary update log)。 log-bin=/usr/local/mysql_install/mysql/mysql-bin/mysql-bin log-bin-index=/usr/local/mysql_install/mysql/mysql-bin/master-bin.index #二进制日志文件的最大长度(默认设置是1GB)。在前一个二进制日志文件里的信息量超过这个最大长度之前, #MySQL服务器会自动提供一个新的二进制日志文件接续上。 #max_binlog_size=n #只把给定数 据库里的变化情况记入二进制日志文件,其他数据库里的变化情况不记载。 #binlog-do-db=dbname #不把给定数据库里的变化情况记入二进制日志文件。 #binlog-ignore-db=dbname #每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。 #默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作。 #sync_binlog=n #在从数据库设置需要过滤或者需要复制的数据库或者数据库表 #replicate-do-table=tablename #replicate-ignore-table=tablename #replicate-do-db=database #replicate-ignore-db=database ################镜像(从属镜像服务器)################## #用来判断从服务器的更新是否写入二进制日志,默认是不打开,除非是其他从服务器的主服务器 #log-slave-updates=1 #用来限制从服务器的更新操作 #read-only=1 #设置从服务器在和主服务器链接丢失后,重连的时间间隔,默认是60秒 #master-connect-retry=60 #从服务器的二进制日志 #log_bin=filename #从服务器的中继日志 #relat_log=filename #server.id=ID #从服务器链接的主服务器的地址 #master-host=hostname #从属服务器用来连接主控服务器的用户名。如果从属服务器上存在mater.info文件,它将忽略此选项 #master-user=replicusername #从属服务器用来连接主控服务器的密码。如果从属服务器上存在mater.info文件,它将忽略此选项。 #master-password=passwd #从属服务器用来连接主控服务器的TCP/IP端口(默认设置是3306端口)。 #master-port=n #1: 把处理完的SQL命令立刻从中继日志文件里删除(默认设置); 0: 不把处理完的SQL命令立刻从中继日志文件里删除。 #read-log-purge=0/1 #从属服务器的主机名; 这项信息只与SHOW SLAVE HOSTS命令有关–主控服务器可以用这条命令 #生成一份从属服务器的名单。 #report-host=hostname #即使发生出错代码为n1、n2等的错误,镜像处理工作也继续进行(即不管发生什么错误, #镜像处理工作也继续进行)。如果配置得当,从属服务器不应该在执行 SQL命令时发生错误 #(在主控服务器上执行出错的SQL命令不会被发送到从属服务器上做镜像处理); 如果不使用slave-skip-errors选项, #从属服务器上的镜像工作就可能因为发生错误而中断,中断后需要有人工参与才能继续进行。 #slave-skip-errors=n1, n2, …或all ###################################mysqld–InnoDB:基本设置、表空间文件##################### # 如果你的 MySQL 服务包含 InnoDB 支持但是并不打算使用的话,使用此选项会节省内存以及磁盘空间, #并且加速某些部分 #skip-innodb 该参数在mysql5.6.6及其后续版本默认开启,开启该参数的时候,Innodb将每个新创建的表的数据及索引存储 #在一个独立的.ibd文件里,而不是系统的表空间。当这些innodb表被删除或清空的时候,存储空间会被回收。 #innodb-file-per-table=1 #InnoDB数据表驱动程序最多可以同时打开的文件数(默认设置是300)。如果使用了innodb-file-per-table #选项并且需要同时打开很多数据表的话,这个数字很可能需要加大。 #innodb-open-file = 300 #InnoDB主目录,所有与InnoDB数据表有关的目录或文件路径都相对于这个路径。在默认的情况下, #这个主目录就是MySQL的数据目录。 #innodb_data_home_dir = p #用来容纳InnoDB为数据表的表空间: 可能涉及一个以上的文件; 每一个表空间文件的最大长度都必须以字节(B)、 #兆字节(MB)或千兆字节(GB)为单位给出; 表空间文件的名字必须以分号隔开; 最后一个表空间文件还可以带一个 #autoextend属性和一个最大长度(max:n)。例如,ibdata1:1G; ibdata2:1G:autoextend:max:2G的意思是: #表空间文件ibdata1的最大长度是1GB,ibdata2的最大长度也是1G,但允许它扩充到2GB。除文件名外, #还可以用硬盘分区的设置名来定义表 空间,此时必须给表空间的最大初始长度值加上newraw关键字做后缀, #给表空间的最大扩充长度值加上raw关键字做后缀(例如/dev/hdb1: 20Gnewraw或/dev/hdb1:20Graw); #MySQL 4.0及更高版本的默认设置是ibdata1:10M:autoextend。 innodb_data_file_path = ibdata1:10M:autoextend # InnoDB 将数据保存在一个或者多个数据文件中成为表空间. #带有autoextend属性的表空间文件每次加大多少兆字节(默认设置是8MB)。这个属性不涉及具体的数据表文件, #那些文件的增大速度相对是比较小的。 #innodb_autoextend_increment = n innodb_lock_wait_timeout=120 # 在被回滚前,一个InnoDB的事务应该等待一个锁被批准多久. #是否以最快的速度关闭InnoDB,默认设置是1,意思是不把缓存在INSERT缓存区的数据写入数据表, #那些数据将在MySQL服务器下次启动 时再写入 (这么做没有什么风险,因为INSERT缓存区是表空间的一个组成部分, #数据不会丢失)。 #innodb_fast_shutdown 0/1 #################################InnoDB–日志############################################# #InnoDB 的日志文件所在位置. 默认是 MySQL 的 datadir. #innodb_log_group_home_dir = p #使用多少个日志文件(默认设置是2)。InnoDB数据表驱动程序将以轮转方式依次填写这些文件; #当所有的日志文件都写满以后,之后的日志信息将写入第一个日志文件的最大长度(默认设置是5MB)。 innodb_log_files_in_group = 3 # 在日志组中的文件总数. #这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为”同步”)到硬盘上。 #设置值0的意思是每隔一秒写一次日 志并进行 同步,这可以减少硬盘写操作次数,但可能造成数据丢失; #设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一次日志并进行同步,这可以防止数据丢失, #但硬盘写操作可能会很频繁; 设置值2是一般折衷的办法,即每执行完一条COMMIT命令写一次日志, #每隔一秒进行一次同步。 innodb_flush_log_at_trx_commit = 2 # 如果设置为1 ,InnoDB会在每次提交后刷新(fsync)事务日志到磁盘上 #InnoDB日志文件的同步办法(仅适用于UNIX/Linux系统)。这个选项的可取值有两种: fdatasync, #用fsync()函数进行同步; O_DSYNC,用O_SYNC()函数进行同步。 #innodb_flush_method = x #启用InnoDB驱动程序的archive(档案)日志功能,把日志信息写入ib_arch_log_n文件。 #启用这种日志功能在InnoDB与 MySQL一起使用时没有多大意义(启用MySQL服务器的二进制日志功能就足够用了)。 #innodb_log_archive = 1 ##################################InnoDB:缓存区的设置和优化############################## #innodb_log_buffer_pool_size = n # 此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。 #MySQL开发人员建议设置为1-8M之间 innodb_log_buffer_size = 16M # 用来缓冲日志数据的缓冲区的大小. # 附加的内存池被 InnoDB 用来保存 metadata 信息(5.6中不再推荐使用) # 如果 InnoDB 为此目的需要更多的内存,它会开始从 OS 这里申请内存. # 由于这个操作在大多数现代操作系统上已经足够快, 你一般不需要修改此值. innodb_additional_mem_pool_size = 64M # 附加的内存池被InnoDB用来保存 metadata 信息 #I/O操作(硬盘写操作)的最大线程个数(默认设置是4)。 innodb_file_io_threads = 4 # 用来同步IO操作的IO线程的数量. This value is #InnoDB驱动程序能够同时使用的最大线程个数(默认设置是8),最优值依赖于应用程序,硬件以及操作系统的调度方式 innodb_thread_concurrency = 16 # 在InnoDb核心内的允许线程数量. ##################################其它选项################################################ # InnoDB使用一个缓冲池来保存索引和原始数据, 不像 MyISAM. # 这里你设置越大,这能保证你在大多数的读取操作时使用的是内存而不是硬盘,在存取表里面数据时所需要的磁盘 # I/O 越少. # 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80% # 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸. # 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制, # 所以不要设置的太高. innodb_buffer_pool_size = 6G # InnoDB使用一个缓冲池来保存索引和原始数据, 不像 MyISAM. innodb_log_file_size = 512M # 在日志组中每个日志文件的大小. innodb_max_dirty_pages_pct = 90 # 在InnoDB缓冲池中最大允许的脏页面的比例. #新数据表的默认数据表类型(默认设置是MyISAM)。这项设置还可以通过–default-table-type选项来设置。 default-storage-engine=INNODB