当前位置:首页 > linux教程 > 列表

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.

  1. # wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz 
  2. # tar zxvf mysql-5.6.20.tar.gz  
  3. # cd mysql-5.6.20 

2、安装cmake(mysql5.5以后源码安装都得通过cmake编译,并安装了ncurses ncurses-devel.

  1. # yum -y install cmake ncurses ncurses-devel 
  2.  
  3. # groupadd mysql 
  4.  
  5. # useradd -g mysql mysql 

3、编译并安装

  1. # 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 
  2.  
  3. # make && make install 

参数说明:

  1. -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql //指定安装目录 
  2. -DINSTALL_DATADIR=/usr/local/webserver/mysql //指定数据存放目录 
  3. -DSYSCONFDIR=/usr/local/webserver/mysql //指定配置文件目录(本例的配置文件为/opt/mysql/my.cnf) 
  4. -DDEFAULT_CHARSET=utf8 //指定字符集 
  5. -DDEFAULT_COLLATION=utf8_general_ci //指定校验字符 
  6. -DEXTRA_CHARSETS=all //安装所有扩展字符集 
  7. -DENABLED_LOCAL_INFILE=1 //允许从本地导入数据 

编译出错需删掉CMakeCache.txt

# rm CMakeCache.txt

拷贝mysql配置文件,并进行相应配置,这里是服务器是阿里云的最低配置,单核 512M内存.

  1. # cd /usr/local/webserver/mysql 
  2.  
  3. # chown -R mysql:mysql data/ 
  4.  
  5. # cp support-files/my-default.cnf  my.cnf 
  6.  
  7. # vi my.cnf 

编辑my.cnf:

  1. [mysqld] 
  2.  
  3. innodb_buffer_pool_size = 100M 
  4.  
  5. basedir = /usr/local/webserver/mysql 
  6.  
  7. datadir = /usr/local/webserver/mysql/data 
  8.  
  9. port = 3306 
  10.  
  11. server_id = 1 
  12.  
  13. socket = /tmp/mysql.sock 
  14.  
  15. join_buffer_size = 10M 
  16.  
  17. sort_buffer_size = 10M 
  18.  
  19. read_rnd_buffer_size = 12M  
  20.  
  21. query_cache_size = 32M 
  22.  
  23. tmp_table_size = 32M 
  24.  
  25. key_buffer_size = 32M 
  26.  
  27. performance_schema_max_table_instances=1000 
  28.  
  29. table_definition_cache=800 
  30.  
  31. table_open_cache=512 
  32.  
  33. long_query_time=1 
  34.  
  35. slow_query_log=1 
  36.  
  37. slow_query_log_file=/usr/loca/webserver/mysql/data/slow-queries.log  //phpfensi.com 
  38.  
  39. 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

报错:

  1. Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/webserver/mysql/data/AY121218115148c506503.pid). 
  2.  
  3. 2014-08-14 11:29:38 1678 [Note] InnoDB: Using mutexes to ref count buffer pool pages 
  4. 2014-08-14 11:29:38 1678 [Note] InnoDB: The InnoDB memory heap is disabled 
  5. 2014-08-14 11:29:38 1678 [Note] InnoDB: Mutexes and rw_locks use InnoDB's own implementation 
  6. 2014-08-14 11:29:38 1678 [Note] InnoDB: Memory barrier is not used 
  7. 2014-08-14 11:29:38 1678 [Note] InnoDB: Compressed tables use zlib 1.2.3 
  8. 2014-08-14 11:29:38 1678 [Note] InnoDB: Not using CPU crc32 instructions 
  9. 2014-08-14 11:29:38 1678 [Note] InnoDB: Initializing buffer pool, size = 100.0M 
  10. InnoDB: mmap(106840064 bytes) failed; errno 12 
  11. 2014-08-14 11:29:38 1678 [ERROR] InnoDB: Cannot allocate memory for the buffer pool 
  12. 2014-08-14 11:29:38 1678 [ERROR] Plugin 'InnoDB' init function returned error. 
  13. 2014-08-14 11:29:38 1678 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
  14. 2014-08-14 11:29:38 1678 [ERROR] Unknown/unsupported storage engine: InnoDB 
  15. 2014-08-14 11:29:38 1678 [ERROR] Aborting 

无法给innodb_buffer_pool_size分配100M内存,但启动Mysql之前实际上是有内存的,Mysql5.6有几个默认值,按照这些值启动需要消耗几百兆内存,然后再分配给innodb_buffer_pool_size就不足了,服务器上可怜的512M内存.

  1. performance_schema_max_table_instances = 12500 
  2.  
  3. table_definition_cache = 1400 
  4.  
  5. table_open_cache = 2000 

调整一下:

  1. performance_schema_max_table_instances=600 
  2.  
  3. table_definition_cache=400 
  4.  
  5. table_open_cache=256 

就只使用40---60M左右的内存了,重新启动mysql.

  1. # ./support-files/mysql.server start 
  2.  
  3. Starting MySQL. SUCCESS! 
  4.  
  5. # cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld 
  6.  
  7. # chmod 755 /etc/init.d/mysqld  
  8.  
  9. # chkconfig mysqld on

Tags: Linux系统 Mysql安装配置

分享到: