Linux系统下Mysql数据库安装配置整理
Mysql安装对于各位站长来讲是非常重要的一个网如果没有数据库那必须不是什么好站了,好站都会有Mysql数据库了,下面我们就来介绍Mysql安装配置教程.
Mysql安装
1、通过官网下载mysql源码包,http://dev.mysql.com/downloads/ 点击MySQL Community Server,选择Source Code,点击 Generic Linux.
(Architecture Independent),Compressed TAR Archive后的Download.
- #wgethttp://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz
- #tarzxvfmysql-5.6.20.tar.gz
- #cdmysql-5.6.20
2、安装cmake(mysql5.5以后源码安装都得通过cmake编译,并安装了ncurses ncurses-devel.
- #yum-yinstallcmakencursesncurses-devel
- #groupaddmysql
- #useradd-gmysqlmysql
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&&makeinstall
参数说明:
- -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-Rmysql:mysqldata/
- #cpsupport-files/my-default.cnfmy.cnf
- #vimy.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
报错:
- StartingMySQL.ERROR!TheserverquitwithoutupdatingPIDfile(/usr/local/webserver/mysql/data/AY121218115148c506503.pid).
- 2014-08-1411:29:381678[Note]InnoDB:Usingmutexestorefcountbufferpoolpages
- 2014-08-1411:29:381678[Note]InnoDB:TheInnoDBmemoryheapisdisabled
- 2014-08-1411:29:381678[Note]InnoDB:Mutexesandrw_locksuseInnoDB'sownimplementation
- 2014-08-1411:29:381678[Note]InnoDB:Memorybarrierisnotused
- 2014-08-1411:29:381678[Note]InnoDB:Compressedtablesusezlib1.2.3
- 2014-08-1411:29:381678[Note]InnoDB:NotusingCPUcrc32instructions
- 2014-08-1411:29:381678[Note]InnoDB:Initializingbufferpool,size=100.0M
- InnoDB:mmap(106840064bytes)failed;errno12
- 2014-08-1411:29:381678[ERROR]InnoDB:Cannotallocatememoryforthebufferpool
- 2014-08-1411:29:381678[ERROR]Plugin'InnoDB'initfunctionreturnederror.
- 2014-08-1411:29:381678[ERROR]Plugin'InnoDB'registrationasaSTORAGEENGINEfailed.
- 2014-08-1411:29:381678[ERROR]Unknown/unsupportedstorageengine:InnoDB
- 2014-08-1411:29:381678[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.serverstart
- StartingMySQL.SUCCESS!
- #cp./support-files/mysql.server/etc/rc.d/init.d/mysqld
- #chmod755/etc/init.d/mysqld
- #chkconfigmysqldon
热门评论