463.commysql5.6.8源码安装过程

内核:

从官网下载mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz

[root@opop ~]# cat /etc/centos-release 
CentOS release 6.8 (Final)
[root@opop ~]# uname -a
Linux opop 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

创建mysql用户

开始安装:

[root@Master home]# useradd mysql
[root@Master data]# echo 'mysql'|passwd --stdin mysql
[root@opop ~]# for i in `rpm -qa | grep mysql`;do yum remove $i;done   //先删除自带的mysql
[root@opop ~]# yum -y install wget gcc gcc-c++ ncurses-devel cmake make perl bison git

更改用户 mysql 的密码 。

创建mysql用户组:

passwd: 所有的身份验证令牌已经成功更新。

[root@opop ~]# groupadd mysql 
[root@opop ~]# useradd -r -g mysql mysql

创建mysql用户的原因

创建mysql安装目录和数据库文件存放目录:

不用mysql用户会出现一下错误,尝试了很多次,添加mysql用户安装成功

[root@opop ~]# mkdir -p /usr/local/mysql
[root@opop ~]# mkdir -p /usr/local/mysql/data

*当然很多时候我们已经创建好别的用户,来完成日常的操作如果不创建mysql用户,修改mysql/bin目录下的mysqld_safe文件;
//亲测成功

修改目录属主和属组:

具体步骤:

[root@opop ~]# chown -R mysql:mysql /usr/local/mysql/data 
[root@opop ~]# chown -R mysql:mysql /usr/local/mysql
[root@Master bin]# vim mysqld_safe
user='mysql' 修改为 user='hadoop' //自己的用户 后边步骤基本相同*
[root@Slave1 data]# service mysql start
Starting MySQL...... ERROR! The server quit without updating PID file (/home/hadoop/ruanJian/mysql/data/Slave1.Hadoop.pid).
[root@Master data]#vim Slave1.Hadoop.err //查看日志文件
160830 15:56:44 mysqld_safe Starting mysqld daemon with databases from /home/hadoop/ruanJian/mysql/data
2016-08-30 15:56:49 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-08-30 15:56:49 1990 [ERROR] Fatal error: Can't change to run as user 'mysql' ; Please check that the user exists!
2016-08-30 15:56:49 1990 [ERROR] Aborting
2016-08-30 15:56:49 1990 [Note] Binlog end
2016-08-30 15:56:49 1990 [Note] /home/hadoop/ruanJian/mysql/bin/mysqld: Shutdown complete
160830 15:56:49 mysqld_safe mysqld from pid file /home/hadoop/ruanJian/mysql/data/Slave1.Hadoop.pid ended

解包:

463.com,在mysql用户下创建data目录并解压

[root@opop ~]# tar -zxvf mysql-5.6.38.tar.gz
[root@opop ~]# cd mysql-5.6.38
[root@Master data]# tar -zxvf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
[root@Master data]# mv mysql-5.6.12-linux-glibc2.5-x86_64 mysql //重命名

编译:

设置权限

[root@opop mysql-5.6.38 ]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DENABLE_DOWNLOADS=1
[root@opop mysql-5.6.38 ]# make && make install
//注:编译时间较长,需要耐心等待
//查看下结果:
//[root@opop mysql-5.6.38 ]# ll /usr/local/mysql/
[root@Master data]# chown -R mysql:mysql mysql

清除临时文件:

切换用户并进入mysql/scripts 目录

[root@opop mysql-5.6.38 ]# make clean
[root@Master data]# su mysql
[mysql@Master data]$ cd mysql/scripts/
[mysql@Master scripts]$

初始化mysql:

安装(目录根据自己的mysql解压目录自行设置)

[root@opop ~]# cd /usr/local/mysql/
[root@opop mysql]# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data 
[root@opop mysql ]# chown -R mysql:mysql /usr/local/mysql 
[root@opop mysql ]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@opop mysql ]# /etc/init.d/mysql start
[root@opop mysql ]# ps -aux |grep mysql
[mysql@Master scripts]$ ./mysql_install_db --user=mysql --basedir=/home/mysql/data/mysql --datadir=/home/mysql/data/mysql/data

配置环境变量:

输出信息

[root@opop mysql]# vim /etc/profile
Installing MySQL system tables...2016-08-30 19:55:41 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-08-30 19:55:42 1354 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2016-08-30 19:55:42 1354 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
2016-08-30 19:55:42 1354 [Note] InnoDB: The InnoDB memory heap is disabled
2016-08-30 19:55:42 1354 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-08-30 19:55:42 1354 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-08-30 19:55:42 1354 [Note] InnoDB: Using Linux native AIO
2016-08-30 19:55:42 1354 [Note] InnoDB: Not using CPU crc32 instructions
2016-08-30 19:55:42 1354 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-08-30 19:55:42 1354 [Note] InnoDB: Completed initialization of buffer pool
2016-08-30 19:55:42 1354 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2016-08-30 19:55:42 1354 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2016-08-30 19:55:42 1354 [Note] InnoDB: Database physically writes the file full: wait...
2016-08-30 19:55:42 1354 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2016-08-30 19:55:43 1354 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2016-08-30 19:55:44 1354 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2016-08-30 19:55:44 1354 [Warning] InnoDB: New log files created, LSN=45781
2016-08-30 19:55:44 1354 [Note] InnoDB: Doublewrite buffer not found: creating new
2016-08-30 19:55:44 1354 [Note] InnoDB: Doublewrite buffer created
2016-08-30 19:55:44 1354 [Note] InnoDB: 128 rollback segment(s) are active.
2016-08-30 19:55:44 1354 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-08-30 19:55:44 1354 [Note] InnoDB: Foreign key constraint system tables created
2016-08-30 19:55:44 1354 [Note] InnoDB: Creating tablespace and datafile system tables.
2016-08-30 19:55:44 1354 [Note] InnoDB: Tablespace and datafile system tables created.
2016-08-30 19:55:44 1354 [Note] InnoDB: Waiting for purge to start
2016-08-30 19:55:44 1354 [Note] InnoDB: 5.6.12 started; log sequence number 0
2016-08-30 19:55:44 1354 [Note] Binlog end
2016-08-30 19:55:44 1354 [Note] InnoDB: FTS optimize thread exiting.
2016-08-30 19:55:44 1354 [Note] InnoDB: Starting shutdown...
2016-08-30 19:55:46 1354 [Note] InnoDB: Shutdown completed; log sequence number 1625977
OK
Filling help tables...2016-08-30 19:55:46 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-08-30 19:55:46 1377 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2016-08-30 19:55:46 1377 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
2016-08-30 19:55:46 1377 [Note] InnoDB: The InnoDB memory heap is disabled
2016-08-30 19:55:46 1377 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-08-30 19:55:46 1377 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-08-30 19:55:46 1377 [Note] InnoDB: Using Linux native AIO
2016-08-30 19:55:46 1377 [Note] InnoDB: Not using CPU crc32 instructions
2016-08-30 19:55:46 1377 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-08-30 19:55:46 1377 [Note] InnoDB: Completed initialization of buffer pool
2016-08-30 19:55:46 1377 [Note] InnoDB: Highest supported file format is Barracuda.
2016-08-30 19:55:46 1377 [Note] InnoDB: 128 rollback segment(s) are active.
2016-08-30 19:55:46 1377 [Note] InnoDB: Waiting for purge to start
2016-08-30 19:55:46 1377 [Note] InnoDB: 5.6.12 started; log sequence number 1625977
2016-08-30 19:55:46 1377 [Note] Binlog end
2016-08-30 19:55:46 1377 [Note] InnoDB: FTS optimize thread exiting.
2016-08-30 19:55:46 1377 [Note] InnoDB: Starting shutdown...
2016-08-30 19:55:48 1377 [Note] InnoDB: Shutdown completed; log sequence number 1625987
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/home/mysql/data/mysql/bin/mysqladmin -u root password 'new-password'
/home/mysql/data/mysql/bin/mysqladmin -u root -h Master.Hadoop password 'new-password'

Alternatively you can run:

/home/mysql/data/mysql/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd . ; /home/mysql/data/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
New default config file was created as /home/mysql/data/mysql/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

在后面加上

配置文件

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib 
export PATH
[mysql@Master scripts]$ cd ../support-files/
[root@Master support-files]# cp my-default.cnf /etc/my.cnf
[root@Master support-files]# cp mysql.server /etc/init.d/mysql
[root@Master support-files]# vim /etc/init.d/mysql //修改mysql文件

相关文章