Centos6.4源码编译安装MySQL5.6.17
首先查看系统版本平台:
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-358.el6.x86_64#1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
一、准备工作
1、添加epel源
[root@localhost ~]#
rpm -ivhhttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@localhost ~]# rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
2、安装yum加速组件:
[root@localhost ~]# yum install yum-plugin-fastestmirror -y
运行yum报错Error: Cannot retrieve metalink for repository: epel. Please verifyits path and try agai
[root@localhost appstores]# yum installyum-plugin-fastestmirror -y
Loaded plugins: fastestmirror, security
Determining fastest mirrors
Error: Cannot retrieve metalink forrepository: epel. Please verify its path and try again
解决办法:编译/etc/yum.repos.d/epel.repo,做如下改动
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
↓
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
——————————————————————————————
[root@localhost appstores]# yum installyum-plugin-fastestmirror -y
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
*base: mirrors.btte.net
*extras: mirrors.btte.net
*updates: mirrors.btte.net
epel/primary_db | 6.1 MB 00:34
extras | 3.4 kB 00:00
extras/primary_db | 19 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 3.1 MB 00:22
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Packageyum-plugin-fastestmirror.noarch 0:1.1.30-14.el6 will be updated
---> Packageyum-plugin-fastestmirror.noarch 0:1.1.30-17.el6_5 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================
Package Arch Version Repository Size
===========================================================================================
Updating:
yum-plugin-fastestmirror noarch 1.1.30-17.el6_5 updates 28 k
Transaction Summary
===========================================================================================
Upgrade 1 Package(s)
Total download size: 28 k
Downloading Packages:
yum-plugin-fastestmirror-1.1.30-17.el6_5.noarch.rpm | 28 kB 00:00
warning: rpmts_HdrFromFdno: Header V3RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 OfficialSigning Key)
Package:centos-release-6-4.el6.centos.10.x86_64(@anaconda-CentOS-201303020151.x86_64/6.4)
From :/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Updating :yum-plugin-fastestmirror-1.1.30-17.el6_5.noarch 1/2
Cleanup :yum-plugin-fastestmirror-1.1.30-14.el6.noarch 2/2
Verifying :yum-plugin-fastestmirror-1.1.30-17.el6_5.noarch 1/2
Verifying :yum-plugin-fastestmirror-1.1.30-14.el6.noarch 2/2
Updated:
yum-plugin-fastestmirror.noarch 0:1.1.30-17.el6_5
Complete!
—————————————————————————————————————————————
3、准备编译MySQl所需环境
[root@localhost ~]# yum -y install make gcc-c++ bison-devel ncurses-devel
4、编译安装cmake
[root@localhost ~]# wget http://wwwNaNake.org/files/v2.8/cmake-2.8.12.2.tar.gz
[root@localhost ~]# tar xfcmake-2.8.12.2.tar.gz
[root@localhost ~]# cd cmake-2.8.12.2
[root@localhost cmake-2.8.12.2]#./configure --prefix=/usr/local/cmake
[root@localhost cmake-2.8.12.2]# gmake
[root@localhost cmake-2.8.12.2]#makeinstall
5、为cmake增加环境变量
[root@localhost ~]# vim /etc/profile //编辑全局变量配置文件
[root@localhost ~]# source /etc/profile //source立即生效
[root@localhost ~]# tail -n2 /etc/profile //查看编译后的结果,也就是要添加的语句了
PATH=$PATH:/usr/local/cmake/bin
export PATH
5、准备MySql用户和组:
[root@localhost ~]# groupadd mysql&& useradd -s /sbin/nologin -g mysql -M mysql
[root@localhost ~]# grep mysql /etc/passwd/etc/group
/etc/passwd:mysql:x:500:500::/home/mysql:/sbin/nologin
6、创建MySQL数据存放目录并授权:
[root@localhost ~]# mkdir/data/mysql56 -pv //递归创建
mkdir: created directory `/data'
mkdir: created directory `/data/mysql56'
[root@localhost ~]# chown -R mysql.mysql/data/mysql56 //修改数据目录所有者
[root@localhost ~]# ls -ld /data/mysql56
drwxr-xr-x. 2 mysql mysql 4096 May 21 00:38/data/mysql56
7、下载并解压MySQL源码包
[root@localhost ~ ]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.17.tar.gz
[root@localhost ~ ]# tar xfMySQL-5.6/mysql-5.6.17.tar.gz //解压
二、准备编译MySQl
编译源码,组织软件项目
切换到解压后的MySql源码目录中:
[root@localhost mysql]# tar xfmysql-5.6.17.tar.gz //解压
[root@localhost mysql]# cd mysql-5.6.17 //进入MySQL源码目录
组织软件编译项目
[root@localhost mysql-5.6.17]
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql56 \
-DMYSQL_DATADIR=/data/mysql56/ \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock\
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_USER=mysql
[root@localhost mysql-5.6.17]# make&& make install
漫长的等待。。。。。。可以看个电影消遣,或者听下网易云音乐哈!这个是我在上班的时候从17:05开始cmake的的,班上的机器配置是酷睿i3,4GB内存
到17:31分钟cmake完毕,17:32分开始make 很快,几乎就在一瞬间,make install大概是3分钟左右!
————————————————————————————————————
配置参数注释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 指定mysql安装位置
-DMYSQL_DATADIR=/home/mysql/data # 数据文件存放位置
-DSYSCONFDIR=/etc # 配置文件my.cnf的位置
-DWITH_MYISAM_STORAGE_ENGINE=1 # 支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 # 支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 # 支持Memory引擎
-DWITH_READLINE=1 # 快捷键功能
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock# 连接数据库socket路径
-DMYSQL_TCP_PORT=3306 # 端口
-DENABLED_LOCAL_INFILE=1 # 允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1 # 安装支持数据库分区
-DEXTRA_CHARSETS=all # 安装所有的字符集
-DDEFAULT_CHARSET=utf8 # 默认字符
-DDEFAULT_COLLATION=utf8_general_ci
——————————————————————————————————————
三、编译完成后,继续下面的操作
1、修改MySQL安装目录的权限:
——————————————————————————————
[root@localhost ~]# cd /usr/local/mysql56
#为了安全起见,安装完成后请修改权限给root用户
[root@localhost mysql56]# chown -Rmysql.mysql .
[root@localhost mysql56]# ls -l
total 156
drwxr-xr-x. 2 mysql mysql 4096 May 26 17:34bin
-rw-r--r--. 1 mysql mysql 17987 Mar 15 03:07 COPYING
drwxr-xr-x. 3 mysql mysql 4096 May 26 17:32data
drwxr-xr-x. 2 mysql mysql 4096 May 26 17:32docs
drwxr-xr-x. 3 mysql mysql 4096 May 26 17:32include
-rw-r--r--. 1 mysql mysql 89144 Mar 15 03:07 INSTALL-BINARY
drwxr-xr-x. 3 mysql mysql 4096 May 26 17:32lib
drwxr-xr-x. 4 mysql mysql 4096 May 26 17:34man
drwxr-xr-x. 10 mysql mysql 4096 May 26 17:34 mysql-test
-rw-r--r--. 1 mysql mysql 2496 Mar 15 03:07README
drwxr-xr-x. 2 mysql mysql 4096 May 26 17:34scripts
drwxr-xr-x. 28 mysql mysql 4096 May 26 17:34 share
drwxr-xr-x. 4 mysql mysql 4096 May 26 17:34sql-bench
drwxr-xr-x. 3 mysql mysql 4096 May 26 17:34support-files
[root@localhost mysql56]#scripts/mysql_install_db --user=mysql
#先进行下一步再做如下权限的修改
[root@localhost mysql56]#scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56--datadir=/data/mysql56
Installing MySQL system tables...2014-05-2617:36:35 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.Please use --explicit_defaults_for_timestamp server option (see documentationfor more details).
2014-05-26 17:36:35 27956 [Note] InnoDB:Using atomics to ref count buffer pool pages
2014-05-26 17:36:35 27956 [Note] InnoDB:The InnoDB memory heap is disabled
2014-05-26 17:36:35 27956 [Note] InnoDB:Mutexes and rw_locks use GCC atomic builtins
2014-05-26 17:36:35 27956 [Note] InnoDB:Compressed tables use zlib 1.2.3
2014-05-26 17:36:35 27956 [Note] InnoDB:Using CPU crc32 instructions
2014-05-26 17:36:35 27956 [Note] InnoDB:Initializing buffer pool, size = 128.0M
2014-05-26 17:36:35 27956 [Note] InnoDB:Completed initialization of buffer pool
2014-05-26 17:36:35 27956 [Note] InnoDB:The first specified data file ./ibdata1 did not exist: a new database to becreated!
2014-05-26 17:36:35 27956 [Note] InnoDB:Setting file ./ibdata1 size to 12 MB
2014-05-26 17:36:35 27956 [Note] InnoDB:Database physically writes the file full: wait...
2014-05-26 17:36:36 27956 [Note] InnoDB:Setting log file ./ib_logfile101 size to 48 MB
2014-05-26 17:36:38 27956 [Note] InnoDB:Setting log file ./ib_logfile1 size to 48 MB
2014-05-26 17:36:41 27956 [Note] InnoDB:Renaming log file ./ib_logfile101 to ./ib_logfile0
2014-05-26 17:36:41 27956 [Warning] InnoDB:New log files created, LSN=45781
2014-05-26 17:36:41 27956 [Note] InnoDB:Doublewrite buffer not found: creating new
2014-05-26 17:36:41 27956 [Note] InnoDB:Doublewrite buffer created
2014-05-26 17:36:41 27956 [Note] InnoDB:128 rollback segment(s) are active.
2014-05-26 17:36:41 27956 [Warning] InnoDB:Creating foreign key constraint system tables.
2014-05-26 17:36:41 27956 [Note] InnoDB:Foreign key constraint system tables created
2014-05-26 17:36:41 27956 [Note] InnoDB:Creating tablespace and datafile system tables.
2014-05-26 17:36:41 27956 [Note] InnoDB:Tablespace and datafile system tables created.
2014-05-26 17:36:41 27956 [Note] InnoDB:Waiting for purge to start
2014-05-26 17:36:41 27956 [Note] InnoDB:5.6.17 started; log sequence number 0
2014-05-26 17:36:42 27956 [Note] Binlog end
2014-05-26 17:36:42 27956 [Note] InnoDB:FTS optimize thread exiting.
2014-05-26 17:36:42 27956 [Note] InnoDB:Starting shutdown...
2014-05-26 17:36:43 27956 [Note] InnoDB:Shutdown completed; log sequence number 1625977
OK
Filling help tables...2014-05-26 17:36:44 0[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use--explicit_defaults_for_timestamp server option (see documentation for moredetails).
2014-05-26 17:36:44 27979 [Note] InnoDB:Using atomics to ref count buffer pool pages
2014-05-26 17:36:44 27979 [Note] InnoDB:The InnoDB memory heap is disabled
2014-05-26 17:36:44 27979 [Note] InnoDB:Mutexes and rw_locks use GCC atomic builtins
2014-05-26 17:36:44 27979 [Note] InnoDB:Compressed tables use zlib 1.2.3
2014-05-26 17:36:44 27979 [Note] InnoDB:Using CPU crc32 instructions
2014-05-26 17:36:44 27979 [Note] InnoDB:Initializing buffer pool, size = 128.0M
2014-05-26 17:36:44 27979 [Note] InnoDB:Completed initialization of buffer pool
2014-05-26 17:36:44 27979 [Note] InnoDB:Highest supported file format is Barracuda.
2014-05-26 17:36:44 27979 [Note] InnoDB:128 rollback segment(s) are active.
2014-05-26 17:36:44 27979 [Note] InnoDB:Waiting for purge to start
2014-05-26 17:36:44 27979 [Note] InnoDB:5.6.17 started; log sequence number 1625977
2014-05-26 17:36:44 27979 [Note] Binlog end
2014-05-26 17:36:44 27979 [Note] InnoDB:FTS optimize thread exiting.
2014-05-26 17:36:44 27979 [Note] InnoDB:Starting shutdown...
2014-05-26 17:36:45 27979 [Note] InnoDB:Shutdown completed; log sequence number 1625987
OK
To start mysqld at boot time you have tocopy
support-files/mysql.server to the rightplace for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THEMySQL root USER !
To do so, start the server, then issue thefollowing commands:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h localhost.localdomain password'new-password'
Alternatively you can run:
./bin/mysql_secure_installation
which will also give you the option ofremoving the test
databases and anonymous user created bydefault. This is
strongly recommended for productionservers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd. ; ./bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cdmysql-test ; perl mysql-test-run.pl
Please report any problems athttp://bugs.mysql.com/
The latest information about MySQL isavailable on the web at
http://www.mysql.com
Support MySQL by buying support/licenses athttp://shop.mysql.com
New default config file was created as./my.cnf and
will be used by default by the server whenyou start it.
You may edit this file to change serversettings
WARNING: Default config file /etc/my.cnfexists on the system
This file will be read by default by theMySQL server
If you do not want to use this, eitherremove it, or use the
--defaults-file argument to mysqld_safewhen starting the server
#将权限设置给root用户,并设置给mysql组,取消其他用户的读写执行权限,仅留给mysql"rx"读执行权限,其他用户无任何权限
[root@localhost mysql56]# chown -R root.mysql . //严格设置权限
[root@localhost mysql56]# ls -l
total 160
drwxr-xr-x. 2 root mysql 4096 May 26 17:34bin
-rw-r--r--. 1 root mysql 17987 Mar 15 03:07 COPYING
drwxr-xr-x. 5 root mysql 4096 May 26 17:36data
drwxr-xr-x. 2 root mysql 4096 May 26 17:32docs
drwxr-xr-x. 3 root mysql 4096 May 26 17:32include
-rw-r--r--. 1 root mysql 89144 Mar 15 03:07 INSTALL-BINARY
drwxr-xr-x. 3 root mysql 4096 May 26 17:32lib
drwxr-xr-x. 4 root mysql 4096 May 26 17:34man
-rw-r--r--. 1 root mysql 943 May 26 17:36my.cnf
drwxr-xr-x. 10 root mysql 4096 May 26 17:34 mysql-test
-rw-r--r--. 1 root mysql 2496 Mar 15 03:07README
drwxr-xr-x. 2 root mysql 4096 May 26 17:34scripts
drwxr-xr-x. 28 root mysql 4096 May 26 17:34 share
drwxr-xr-x. 4 root mysql 4096 May 26 17:34sql-bench
drwxr-xr-x. 3 root mysql 4096 May 26 17:34support-files
#给数据库存放目录设置成mysql用户mysql组
[root@localhost ~]# chown -R mysql.mysql /data/mysql56
[root@localhost ~]# ls -ld /data/mysql56
drwxr-xr-x. 2 mysql mysql 4096 May 26 16:55/data/mysql56
[root@localhost ~]# cd /usr/local/mysql56
[root@localhost mysql56]# chown -R mysql.mysql .
[root@localhost mysql56]# ls -l
total 160
drwxr-xr-x. 2 mysql mysql 4096 May 26 17:34bin
-rw-r--r--. 1 mysql mysql 17987 Mar 15 03:07 COPYING
drwxr-xr-x. 5 mysql mysql 4096 May 26 17:36data
drwxr-xr-x. 2 mysql mysql 4096 May 26 17:32docs
drwxr-xr-x. 3 mysql mysql 4096 May 26 17:32include
-rw-r--r--. 1 mysql mysql 89144 Mar 15 03:07 INSTALL-BINARY
drwxr-xr-x. 3 mysql mysql 4096 May 26 17:32lib
drwxr-xr-x. 4 mysql mysql 4096 May 26 17:34man
-rw-r--r--. 1 mysql mysql 943 May 26 17:36my.cnf
drwxr-xr-x. 10 mysql mysql 4096 May 26 17:34 mysql-test
-rw-r--r--. 1 mysql mysql 2496 Mar 15 03:07README
drwxr-xr-x. 2 mysql mysql 4096 May 26 17:34scripts
drwxr-xr-x. 28 mysql mysql 4096 May 26 17:34 share
drwxr-xr-x. 4 mysql mysql 4096 May 26 17:34sql-bench
drwxr-xr-x. 3 mysql mysql 4096 May 26 17:34support-files
#进行完上面的操作之后,为了安全起见,还是建议将MySQL安装目录的属主修改为root,属组修改为MySQL
[root@localhost mysql56]# chown -R root .
[root@localhost mysql56]# ls -l
total 164
drwxr-xr-x. 2 root mysql 4096 May 26 17:34bin
-rw-r--r--. 1 root mysql 17987 Mar 15 03:07 COPYING
drwxr-xr-x. 5 root mysql 4096 May 26 17:42data
drwxr-xr-x. 2 root mysql 4096 May 26 17:32docs
drwxr-xr-x. 3 root mysql 4096 May 26 17:32include
-rw-r--r--. 1 root mysql 89144 Mar 15 03:07 INSTALL-BINARY
drwxr-xr-x. 3 root mysql 4096 May 26 17:32lib
drwxr-xr-x. 4 root mysql 4096 May 26 17:34man
-rw-r--r--. 1 root mysql 943 May 26 17:36my.cnf
-rw-r--r--. 1 root root 943 May 26 17:42my-new.cnf
drwxr-xr-x. 10 root mysql 4096 May 26 17:34 mysql-test
-rw-r--r--. 1 root mysql 2496 Mar 15 03:07README
drwxr-xr-x. 2 root mysql 4096 May 26 17:34scripts
drwxr-xr-x. 28 root mysql 4096 May 26 17:34 share
drwxr-xr-x. 4 root mysql 4096 May 26 17:34sql-bench
drwxr-xr-x. 3 root mysql 4096 May 26 17:34support-files
——————————————————————————————
2、将mysql的配置文件拷贝到/etc,并给/etc/my.cnf +x权限同时删除其他用户的写权限,仅仅留给root 和工作组 rx权限,其他一律删除连rx权限都删除
[root@localhost mysql56]# cp support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql56]# ls -l /etc/my.cnf
-rw-r--r--. 1 root root 1145 May 26 17:46/etc/my.cnf
#修改my.cnf配置
[root@localhost mysql56]# vim /etc/my.cnf
#[mysqld] 添加如下两行:
basedir = /usr/local/mysql56
datadir = /data/mysql56
[root@localhost mysql56]# egrep"basedir|datadir" /etc/my.cnf -n //查询配置后的结果
18: basedir = /usr/local/mysql56
19: datadir = /data/mysql56
3、启动MySQL,最好按照下面的次序去启动MySQL
初始化MySQL数据库目录
[root@localhost mysql56]#scripts/mysql_install_db --basedir=/usr/local/mysql56 --datadir=/data/mysql56 --user=mysql
[root@localhost mysql56]# netstat -lnt|grep :3306
tcp 0 0 :::3306 :::* LISTEN
4、上面是一种启动mysql的方法,还有一种简单的方便,如下:
#将mysql的启动服务添加到系统服务中
[root@localhost mysql56]# cp support-files/mysql.server /etc/init.d/mysqld
#赋予启动脚本可执行权限
[root@localhost mysql56]# chmod 700/etc/init.d/mysqld //修改脚本启动权限
[root@localhost mysql56]# ls -l/etc/init.d/mysqld
-rwx------. 1 root root 10882 May 26 17:55/etc/init.d/mysqld
#现在可以使用下面的命令启动mysql
[root@localhost mysql56]# service mysqld restart //System V风格启动MySQL服务
Shutting down MySQL..140526 17:56:56mysqld_safe mysqld from pid file /data/mysql56/localhost.localdomain.pid ended
SUCCESS!
Starting MySQL. SUCCESS!
[1]+ Done bin/mysqld_safe --user=mysql
5、MySQL启动成功与否验证:
(1)端口验证:
[root@localhost mysql56]# netstat -lnt|grep :3306
tcp 0 0 :::3306 :::* LISTEN
(2)进程验证:
[root@localhost mysql56]# ps -ef |grepmysqld
root 5732 1 0 17:56 pts/2 00:00:00 /bin/sh/usr/local/mysql56/bin/mysqld_safe --datadir=/data/mysql56--pid-file=/data/mysql56/localhost.localdomain.pid
mysql 5871 5732 0 17:56 pts/2 00:00:00 /usr/local/mysql56/bin/mysqld--basedir=/usr/local/mysql56 --datadir=/data/mysql56--plugin-dir=/usr/local/mysql56/lib/plugin --user=mysql--log-error=/data/mysql56/localhost.localdomain.err--pid-file=/data/mysql56/localhost.localdomain.pid
root 5902 12688 0 17:58 pts/2 00:00:00 grep mysqld
(3)反查:
[root@localhost mysql56]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 5871 mysql 10u IPv6 126647 0t0 TCP *:mysql (LISTEN)
(4)查看进程:
[root@localhost mysql56]# ps aux | grepmysqld
root 5732 0.0 0.1 11336 1404 pts/2 S 17:56 0:00 /bin/sh/usr/local/mysql56/bin/mysqld_safe --datadir=/data/mysql56--pid-file=/data/mysql56/localhost.localdomain.pid
mysql 5871 0.4 43.8 1007548 596688pxs/2 Sl 17:56 0:00 /usr/local/mysql56/bin/mysqld --basedir=/usr/local/mysql56--datadir=/data/mysql56 --plugin-dir=/usr/local/mysql56/lib/plugin --user=mysql--log-error=/data/mysql56/localhost.localdomain.err--pid-file=/data/mysql56/localhost.localdomain.pid
root 5905 0.0 0.0 103240 824 pts/2 S+ 17:59 0:00 grep mysqld
6、将mysql服务添加到开机启动项,让mysql服务开机启动
#添加服务到自启动项
[root@localhost ~]# chkconfig --level 3 mysqld on
[root@localhost ~]# chkconfig --list |grepmysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
7、添加环境变量:
[root@localhost mysql56]# mysql
-bash: mysql: command not found
[root@localhost mysql56]# vim /etc/profile
#添加如下两行
PATH=$PATH:/usr/local/mysql56/bin
export PATH
#source生效
[root@localhost mysql56]# source/etc/profile
#客户端输入验证
[root@localhost mysql56]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.17 Source distribution
Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved.
Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.
Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.
mysql> \q
Bye
默认情况下,MySQL不用输入密码即可进入MySQL数据库系统;因为mysql库中的user表初始化的时候没设置密码哦!
#查看MySQL版本信息:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.17 |
+-----------+
1 row in set (0.06 sec)
#查看系统中的所有库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.07 sec)
8、修改默认root账户密码,默认密码为空
[root@localhost ~]# mysqladmin -uroot password //建议使用此方法设置密码
回车在接下来的提示中设置新密码即可。。。。。。。
New password:
Confirm new password:
[root@localhost ~]# mysql
ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)
[root@localhost ~]# mysql -uroot-p'123.com'
Warning: Using a password on the commandline interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.17 Source distribution
Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved.
Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.
Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.
9、启动MySQL
[root@localhost ~]#/usr/local/mysql56/bin/mysqld_safe --defaults-file=/etc/my.cnf &
[1] 6306
[root@localhost ~]# 140526 18:21:55mysqld_safe Logging to '/data/mysql56/localhost.localdomain.err'.
140526 18:21:55 mysqld_safe Starting mysqlddaemon with databases from /data/mysql56
验证MySQL是否被正常启动
[root@localhost mysql56]# netstat -tulanp|grep :3306
tcp 0 0 :::3306 :::* LISTEN 6274/mysqld
[root@localhost mysql56]# killall mysqld
[root@localhost mysql56]# killall mysqld
mysqld: no process killed
#或者
[root@localhost mysql56]#/etc/init.d/mysqld start
Starting MySQL. SUCCESS!
[root@localhost mysql56]# netstat -tulanp|grep :3306
tcp 0 0 :::3306 :::* LISTEN 6593/mysqld
[root@localhost mysql56]#
10、测试MySQL是否启动
# 1)查看是否有进程mysql
[root@localhost mysql56]# ps -ef | grepmysqld
root 6454 1 0 18:23 pts/0 00:00:00 /bin/sh/usr/local/mysql56/bin/mysqld_safe --datadir=/data/mysql56--pid-file=/data/mysql56/localhost.localdomain.pid
mysql 6593 6454 1 18:23 pts/0 00:00:00 /usr/local/mysql56/bin/mysqld--basedir=/usr/local/mysql56 --datadir=/data/mysql56--plugin-dir=/usr/local/mysql56/lib/plugin --user=mysql--log-error=/data/mysql56/localhost.localdomain.err --pid-file=/data/mysql56/localhost.localdomain.pid
root 6624 12569 0 18:23 pts/0 00:00:00 grep mysqld
# 2)查看端口是否运行
[root@localhost mysql56]# netstat -tulanp|grep :3306
tcp 0 0 :::3306 :::* LISTEN 6593/mysqld
11、去除MySQL版本,创建MySQL软链接,方便日后新版本的升级
[root@localhost ~]# ln -s/usr/local/mysql56 /usr/local/mysql
[root@localhost ~]# ll /usr/local/mysql
lrwxrwxrwx. 1 root root 18 May 26 11:18/usr/local/mysql -> /usr/local/mysql56
12、修改/etc/my.cnf配置文件
[root@client100 support-files]# vim/etc/my.cnf
# 配置文件内容如下: [目前,这里只做简单配置,下篇文章会详述]
[mysqld]
basedir = /usr/local/mysql56
datadir = /data/mysql56
port= 3306
server_id = 100
socket = /usr/local/mysql/mysqld.sock
# 下面是删除mysql数据库中,密码为空的用户
mysql> use mysql;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
mysql> select User,Host,Password from user;
+------+-----------------------+-------------------------------------------+
| User | Host | Password |
+------+-----------------------+-------------------------------------------+
| root | localhost | *AC241830FFDDC8943AB31CBD47D758E79F7953EA |
| root | localhost.localdomain | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | localhost.localdomain | |
+------+-----------------------+-------------------------------------------+
6 rows in set (0.01 sec)
mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.01 sec)
mysql> select User,Password,Host from user;
+------+-------------------------------------------+-----------------------+
| User | Password | Host |
+------+-------------------------------------------+-----------------------+
| root | *AC241830FFDDC8943AB31CBD47D758E79F7953EA | localhost |
| root | | localhost.localdomain |
| root | | 127.0.0.1 |
| root | | ::1 |
+------+-------------------------------------------+-----------------------+
4 rows in set (0.00 sec)
mysql> delete from mysql.user where password='';
Query OK, 3 rows affected (0.01 sec)
mysql> select User,Password,Host from user;
+------+-------------------------------------------+-----------+
| User | Password | Host |
+------+-------------------------------------------+-----------+
| root | *AC241830FFDDC8943AB31CBD47D758E79F7953EA | localhost |
+------+-------------------------------------------+-----------+
1 row in set (0.00 sec)
# 刷新授权表
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
13、下面来验证建库和建表语句
[root@localhost ~]# mysql -uroot-p'123.com'
Warning: Using a password on the commandline interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.17 Source distribution
Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved.
Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.
Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.
mysql> create database students;
Query OK, 1 row affected (0.00 sec)
mysql> use students;
Database changed
mysql> create table test1(
-> id int(4) not null primary key auto_increment,
-> name char(20) not null
-> );
Query OK, 0 rows affected (0.25 sec)
mysql> insert into test1(id,name)values(1,'zhangsan');
insert into test1(id,name)values(2,'lisi');
insert into test1(id,name)values(3,'wangwu');
Query OK, 1 row affected (0.02 sec)
mysql> insert into test1(id,name)values(2,'lisi');
insert into test1(id,name)values(4,'maliu');
insert into test1(id,name)values(5,'zaqi');
Query OK, 1 row affected (0.07 sec)
mysql> insert into test1(id,name)values(3,'wangwu');
Query OK, 1 row affected (0.01 sec)
mysql> insert into test1(id,name)values(4,'maliu');
Query OK, 1 row affected (0.01 sec)
mysql> insert into test1(id,name)values(5,'zaqi');
insert into test1(id,name)values(6,'zaba');
insert into test1(id,name)values(7,'zaojiu');
insert into test1(id,name)values(8,'wanliu');Query OK, 1 row affected (0.12 sec)
mysql> insert into test1(id,name)values(6,'zaba');
Query OK, 1 row affected (0.01 sec)
mysql> insert into test1(id,name)values(7,'zaojiu');
Query OK, 1 row affected (0.01 sec)
mysql> insert into test1(id,name)values(8,'wanliu');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test1;
+----+----------+
| id | name |
+----+----------+
| 1| zhangsan |
| 2| lisi |
| 3| wangwu |
| 4| maliu |
| 5| zaqi |
| 6| zaba |
| 7| zaojiu |
| 8| wanliu |
+----+----------+
8 rows in set (0.00 sec)
14、最后看一眼字符集:
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.01 sec)
OK,到此,一个基本的MySQL环境算是搭建完毕了,不足之处还请大家多多提出宝贵意见和建议!
———————————————————————————————————————
附注:
#建表语句
create table test1(
id int(4) not null primary keyauto_increment,
name char(20) not null
);
insert into test1(id,name)values(1,'zhangsan');
insert into test1(id,name)values(2,'lisi');
insert into test1(id,name)values(3,'wangwu');
insert into test1(id,name)values(4,'maliu');
insert into test1(id,name)values(5,'zaqi');
insert into test1(id,name)values(6,'zaba');
insert into test1(id,name)values(7,'zaojiu');
insert into test1(id,name) values(8,'wanliu');
#查询结果
mysql> select * from test1;
+----+----------+
| id | name |
+----+----------+
| 1| zhangsan |
| 2| lisi |
| 3| wangwu |
| 4| maliu |
| 5| zaqi |
| 6| zaba |
| 7| zaojiu |
| 8| wanliu |
+----+----------+
8 rows in set (0.00 sec)
————————————————————————————————————————————— 韩艳威 2014-05-26