centos mysql 5.5.36源_CentOS 6.4 64位平台mysql5.5.36源码编译安装

目录

1、系统环境

2、准备用户及数据存储目录

3、编译安装mysql

4、mysql数据库的初始安全配置

5、mysql管理员密码丢失的处理

1、系统环境

[root@db_server ~]# cat /etc/issue

CentOS release 6.4 (Final)

Kernel \r on an \m

[root@db_server ~]# uname -r

2.6.32-358.el6.x86_64

在安装系统时已安装过“Development tools”及“Server Platform Development”两个开发包组。

[root@db_server ~]# yum -y install cmake  #mysql5.5不再是make来编译,而是采用cmake

[root@db_server software]# pwd

/root/software

[root@db_server software]# ls

mysql-5.5.36.tar.gz

[root@db_server software]# tar xf mysql-5.5.36.tar.gz

[root@db_server software]# ls

mysql-5.5.36  mysql-5.5.36.tar.gz

如果系统自带了rpm包安装过的mysql数据库那先卸载:

[root@db_server software]# rpm -qa mysql

mysql-5.1.73-3.el6_5.x86_64

[root@db_server software]# rpm -e --nodeps mysql

2、准备用户及数据存放目录

2.1、创建用户

[root@db_server software]# useradd -r mysql

useradd: user 'mysql' already exists  #mysql用户已存在

[root@db_server software]# id mysql

uid=27(mysql) gid=27(mysql) groups=27(mysql)

2.2、创建数据存放目录

[root@db_server software]# mkdir -pv /mydata/data  #在生产环境上就建立在LVM卷或存储设备映射过来的卷上

mkdir: created directory `/mydata/data'

[root@db_server software]# chown -R mysql.mysql /mydata/data  #修改数据目录的属主与属组

3、编译安装

[root@db_server software]# cd mysql-5.5.36

[root@db_server mysql-5.5.36]# cmake . -DCMAKE_INSTALL_PREFIX=/opt/lamp/mysql55/ -DMYSQL_DATADIR=/mydata/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=ON -DWITH_ARCHIVE_STORAGE_ENGINE=ON -DWITH_BLACKHOLE_STORAGE_ENGINE=ON -DWITH_READLINE=ON -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=OFF -DDEFAULT_CHARSET=utf8 -DEXTRA=all -DDEFAULT_COLLATION=utf8_general_ci

[root@db_server mysql-5.5.36]# make

[root@db_server mysql-5.5.36]# make install

[root@db_server mysql-5.5.36]# cd /opt/lamp/mysql55/

[root@db_server mysql55]# chgrp -R mysql .

root@db_server mysql55]# cp support-files/my-large.cnf /etc/my.cnf   #提供配置文件

cp: overwrite `/etc/my.cnf'? y

[root@db_server mysql55]# vim /etc/my.cnf #在[mysqld]字段下加入下边的参数

datadir = /mydata/data

[root@db_server mysql55]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 夹 #提供服务脚本

[root@db_server mysql55]# chmod +x /etc/rc.d/init.d/mysqld

[root@db_server mysql55]# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data  #初始化数据库,看见两个“OK”就初始化成功

[root@db_server mysql55]# ls /mydata/data   #在没有启动mysqld服务时此目录有以下这些文件

mysql  mysql-bin.000001  mysql-bin.000002  mysql-bin.index  performance_schema  test

[root@db_server mysql55]# service mysqld start  #启动服务

Starting MySQL... SUCCESS!

[root@db_server mysql55]# netstat -tnl  #查看3306端口是否监听

[root@db_server mysql55]# vim /etc/profile.d/mysql.sh  #导出二进制文件

export PATH=/opt/lamp/mysql55/bin:$PATH

[root@db_server mysql55]# source /etc/profile.d/mysql.sh

[root@db_server mysql55]# mysql #测试能否连入mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.5.36-log Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

[root@db_server mysql55]# ls /mydata/data   #启动mysqld服务后此目录下就会新增一些文件

db_server.err  ibdata1      ib_logfile1  mysql-bin.000001  mysql-bin.000003  performance_schema

db_server.pid  ib_logfile0  mysql        mysql-bin.000002  mysql-bin.index   test

4、mysql数据库的初始安全配置

4.1、删除匿名用户

mysql> select user,host,password from mysql.user; #查看数据库中的用户信息

+------+------------+----------+

| user | host       | password |

+------+------------+----------+

| root | localhost  |          |

| root | db\_server |          |

| root | 127.0.0.1  |          |

| root | ::1        |          |

|      | localhost  |          |

|      | db\_server |          |

+------+------------+----------+

6 rows in set (0.01 sec)

mysql> drop user ''@'localhost';  #删除一个匿名用户

mysql> drop user ''@'db\_server';  #删除另一个匿名用户

如果此数据库没有规划让IPV6的地址来访问,那可删除root用户以IPV6来访问数据库,所以如下操作:

mysql> drop user 'root'@'::1';

mysql> select user,host,password from mysql.user; #用户删除后的用户信息

+------+------------+----------+

| user | host       | password |

+------+------------+----------+

| root | localhost  |          |

| root | db\_server |          |

| root | 127.0.0.1  |          |

+------+------------+----------+

3 rows in set (0.00 sec)

4.2、修改root用户密码

以上操作后只剩下‘root’用户各三个主机名组合成了三种接入mysql的用户,这三种表示对mysql来说是三个不同的用户,如果这三个用户的接入密码都相同,那可直接用sql语言调用“password()”函数来统一修改user表中的“password”这个字段的值,如下操作:

mysql> update user set password=password('111111') where user='root';

Query OK, 3 rows affected (0.02 sec)

Rows matched: 3  Changed: 3  Warnings: 0

mysql> select user,host,password from mysql.user; #查看密码是否修改成功

+------+------------+-------------------------------------------+

| user | host       | password                                  |

+------+------------+-------------------------------------------+

| root | localhost  | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |

| root | db\_server | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |

| root | 127.0.0.1  | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |

+------+------------+-------------------------------------------+

3 rows in set (0.02 sec)

mysql> flush privileges; #刷新授权表,把用户修改后的信息加载到内存中

mysql> \q

Bye

[root@db_server mysql55]# mysql #测试

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@db_server mysql55]# mysql -uroot -p111111

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 4

Server version: 5.5.36-log Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

4.3、为应用程序提供专门的授权帐号

mysql的root用户只能用于数据库的管理,不能用于应用,比如一个php的网站程序需要与mysql交互,那应该创建一个用户并赋予相应的权限,专门与网站进行交互,一定不要用root用户。

5、mysql管理员密码丢失的处理

[root@db_server mysql55]# pwd

/opt/lamp/mysql55

[root@db_server mysql55]# bin/mysqld_safe --skip-grant --skip-networking &

解释:

--skip-grant     #表示启用时跳过授权表

--skip-networking   # 表示跳过网络,客户端与mysqld通信不用tcp/ip方式,即不监听本地的3306端口,而只能用uninx sock方式通信,如果不加此参数,那会监听本地的3306端口,从安全的角度考虑这是不安全的。

[root@db_server ~]# mysql   #无密码登陆mysqld

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.5.36-log Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user,host,password from mysql.user;

+------+------------+-------------------------------------------+

| user | host       | password                                  |

+------+------------+-------------------------------------------+

| root | localhost  | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |

| root | db\_server | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |

| root | 127.0.0.1  | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |

+------+------------+-------------------------------------------+

3 rows in set (0.01 sec)

mysql> update mysql.user set password=password('123456') where user='root';  #修改密码

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3  Changed: 3  Warnings: 0

[root@db_server ~]# service mysqld restart  #重新启动mysql

Shutting down MySQL. SUCCESS!

Starting MySQL.. SUCCESS!

[root@db_server ~]# mysql -uroot -p123456   #之前是的密码是“111111”,现在已修改成了“123456”

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.5.36-log Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值