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 //Vevb.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
新聞熱點
疑難解答