一、卸载旧版本

二、下载、编译、安装mysql

三、配置mysql

四、其他

 

 

一、卸载旧版本

 

检查当前主机上是否安装了mysql

[root@localhost php-5.4.41]# rpm -qa | grep mysql
mysql-libs-5.1.71-1.el6.x86_64

rpm -e mysql-libs.x86_64    #删除
或者
rpm -e --nodeps mysql-libs.x86_64    #强制删除

二、下载、编译、安装mysql

 

1、安装编译代码需要的包

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

2、下载源码包、解压后编译安装

[root@localhost php-5.4.41]# cd /root/downloads/
[root@localhost downloads]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.23.tar.gz
[root@localhost downloads]# tar -xf mysql-5.6.23.tar.gz
[root@localhost downloads]# cd /mysql-5.6.23

编译命令

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.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

 

编译完成后有提示信息

CMake Warning:
  Manually-specified variables were not used by the project:

    MYSQL_USER
    WITH_MEMORY_STORAGE_ENGINE
    WITH_READLINE
-- Build files have been written to: /root/backup/mysqlsrc/mysql-5.6.23

 

安装,时间较长

[root@localhost mysql-5.6.23]# make && make install

 

相关选项作用

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径

-DMYSQL_DATADIR=/usr/local/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=/tmp/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 #默认校对规则

utf8_general_ci 不区分大小写

utf8_general_cs 区分大小写

 

编译的参数可以参考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

 

三、配置mysql

 

1、设置权限

检查系统中是否存在mysql用户和组

grep mysql /etc/passwd
grep mysql /etc/grou

没有就创建


groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql    #服务进程账户,无需登录系统

修改mysql目录中文件的权限  
 

chown -R root:mysql /usr/local/mysql/*
chown -R mysql:mysql /usr/local/mysql/data


 

2、初始化配置

进入安装目录执行初始化脚本,创建系统自带数据库和表

cd /usr/local/mysql/
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

 

3、服务程序配置

(1)、将服务程序路径添加到PATH环境变量中

新建/etc/profile.d/mysql.sh,添加内容保存退出,source一下

export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile.d/mysql.sh    #让上述配置立即生效

(2)、将服务脚本复制到/etc/init.d目录下,并添加到服务列表

cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld 
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig --list mysqld
mysql              0:off    1:off    2:on    3:on    4:on    5:on    6:off

(3)、启动服务

[root@localhost mysql]# service mysqld start
Starting MySQL.... SUCCESS!

 

四、其他

 

完成上面三步,mysql编译安装已经完成,可以在该主机使用mysql命令进入mysql了

1、设置密码,查看mysql用户,为了安全,我们可以给默认用户root

mysql> USE mysql;    #使用mysql数据库
mysql> SELECT user,host,password FROM user;    #查看mysql用户
+------+-----------------------+----------+
| user | host                  | password |
+------+-----------------------+----------+
| root | localhost             |          |
| root | localhost.localdomain |          |
| root | 127.0.0.1             |          |
| root | ::1                   |          |
|      | localhost             |          |
|      | localhost.localdomain |          |
+------+-----------------------+----------+

修改密码方法

1、mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
2、bash命令行下# mysqladmin -uusername password 'password' -p

为了安全我们可以将以下无密码项全部加上密码

mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT user,host,password FROM user;
+------+-----------------------+-------------------------------------------+
| user | host                  | password                                  |
+------+-----------------------+-------------------------------------------+
| root | localhost             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | localhost.localdomain |                                           |
| root | 127.0.0.1             |                                           |
| root | ::1                   |                                           |
|      | localhost             |                                           |
|      | localhost.localdomain |                                           |
+------+-----------------------+-------------------------------------------+
6 rows in set (0.00 sec)

 

MySQL提供了一个Perl脚本为root设置密码、移除匿名账户、是否禁止root从远程访问、是否删除test数据库、是否重新加载新的数据

[root@test1 ~]# /usr/local/mysql/bin/mysql_secure_installation


2、设置root远程访问权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;

此命令的password为远程访问时,root用户的密码,可以和本地不同。

 

3、配置防火墙

远程访问mysql,需要开启防火墙的3306端口

编辑/etc/sysconfig/iptables

在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

然后重启iptables即可。

 

---------------------------------------------------------------------------------------------

操作步骤完全参照了该博客,过程简单明了http://www.cnblogs.com/xiongpq/p/3384681.html