Linux系统下Mysql数据库安装配置整理
发布:smiling 来源: PHP粉丝网 添加日期:2015-05-05 15:49:39 浏览: 评论:0
Mysql安装对于各位站长来讲是非常重要的一个网如果没有数据库那必须不是什么好站了,好站都会有Mysql数据库了,下面我们就来介绍Mysql安装配置教程.
Mysql安装
1、通过官网下载mysql源码包,http://dev.mysql.com/downloads/ 点击MySQL Community Server,选择Source Code,点击 Generic Linux.
(Architecture Independent),Compressed TAR Archive后的Download.
- # wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz
- # tar zxvf mysql-5.6.20.tar.gz
- # cd mysql-5.6.20
2、安装cmake(mysql5.5以后源码安装都得通过cmake编译,并安装了ncurses ncurses-devel.
- # yum -y install cmake ncurses ncurses-devel
- # groupadd mysql
- # useradd -g mysql mysql
3、编译并安装
- # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/usr/local/webserver/mysql -DSYSCONFDIR=/usr/local/webserver/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
- # make && make install
参数说明:
- -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql //指定安装目录
- -DINSTALL_DATADIR=/usr/local/webserver/mysql //指定数据存放目录
- -DSYSCONFDIR=/usr/local/webserver/mysql //指定配置文件目录(本例的配置文件为/opt/mysql/my.cnf)
- -DDEFAULT_CHARSET=utf8 //指定字符集
- -DDEFAULT_COLLATION=utf8_general_ci //指定校验字符
- -DEXTRA_CHARSETS=all //安装所有扩展字符集
- -DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
编译出错需删掉CMakeCache.txt
# rm CMakeCache.txt
拷贝mysql配置文件,并进行相应配置,这里是服务器是阿里云的最低配置,单核 512M内存.
- # cd /usr/local/webserver/mysql
- # chown -R mysql:mysql data/
- # cp support-files/my-default.cnf my.cnf
- # vi my.cnf
编辑my.cnf:
- [mysqld]
- innodb_buffer_pool_size = 100M
- basedir = /usr/local/webserver/mysql
- datadir = /usr/local/webserver/mysql/data
- port = 3306
- server_id = 1
- socket = /tmp/mysql.sock
- join_buffer_size = 10M
- sort_buffer_size = 10M
- read_rnd_buffer_size = 12M
- query_cache_size = 32M
- tmp_table_size = 32M
- key_buffer_size = 32M
- performance_schema_max_table_instances=1000
- table_definition_cache=800
- table_open_cache=512
- long_query_time=1
- slow_query_log=1
- slow_query_log_file=/usr/loca/webserver/mysql/data/slow-queries.log //phpfensi.com
- log_queries_not_using_indexes=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
初始化Mysql数据库:
/usr/loca/webserver/mysql/scripts/mysql_install_db --user=mysql
启动Mysql:
# ./support-files/mysql.server start
报错:
- Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/webserver/mysql/data/AY121218115148c506503.pid).
- 2014-08-14 11:29:38 1678 [Note] InnoDB: Using mutexes to ref count buffer pool pages
- 2014-08-14 11:29:38 1678 [Note] InnoDB: The InnoDB memory heap is disabled
- 2014-08-14 11:29:38 1678 [Note] InnoDB: Mutexes and rw_locks use InnoDB's own implementation
- 2014-08-14 11:29:38 1678 [Note] InnoDB: Memory barrier is not used
- 2014-08-14 11:29:38 1678 [Note] InnoDB: Compressed tables use zlib 1.2.3
- 2014-08-14 11:29:38 1678 [Note] InnoDB: Not using CPU crc32 instructions
- 2014-08-14 11:29:38 1678 [Note] InnoDB: Initializing buffer pool, size = 100.0M
- InnoDB: mmap(106840064 bytes) failed; errno 12
- 2014-08-14 11:29:38 1678 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
- 2014-08-14 11:29:38 1678 [ERROR] Plugin 'InnoDB' init function returned error.
- 2014-08-14 11:29:38 1678 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
- 2014-08-14 11:29:38 1678 [ERROR] Unknown/unsupported storage engine: InnoDB
- 2014-08-14 11:29:38 1678 [ERROR] Aborting
无法给innodb_buffer_pool_size分配100M内存,但启动Mysql之前实际上是有内存的,Mysql5.6有几个默认值,按照这些值启动需要消耗几百兆内存,然后再分配给innodb_buffer_pool_size就不足了,服务器上可怜的512M内存.
- performance_schema_max_table_instances = 12500
- table_definition_cache = 1400
- table_open_cache = 2000
调整一下:
- performance_schema_max_table_instances=600
- table_definition_cache=400
- table_open_cache=256
就只使用40---60M左右的内存了,重新启动mysql.
- # ./support-files/mysql.server start
- Starting MySQL. SUCCESS!
- # cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
- # chmod 755 /etc/init.d/mysqld
- # chkconfig mysqld on
Tags: Linux系统 Mysql安装配置
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)