CentOS 6.4 64位平台mysql5.5.36源码编译安装

目录

1、系统环境

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

3、编译安装mysql

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

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

1、系统环境

[[email protected]_server ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
[[email protected]_server ~]# uname -r
2.6.32-358.el6.x86_64
在安装系统时已安装过“Development tools”及“Server Platform Development”两个开发包组。
[[email protected]_server ~]# yum -y install cmake  #mysql5.5不再是make来编译,而是采用cmake
[[email protected]_server software]# pwd
/root/software
[[email protected]_server software]# ls
mysql-5.5.36.tar.gz
[[email protected]_server software]# tar xf mysql-5.5.36.tar.gz
[[email protected]_server software]# ls
mysql-5.5.36  mysql-5.5.36.tar.gz

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

[[email protected]_server software]# rpm -qa mysql
mysql-5.1.73-3.el6_5.x86_64
[[email protected]_server software]# rpm -e --nodeps mysql

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

2.1、创建用户

[[email protected]_server software]# useradd -r mysql
useradd: user ‘mysql‘ already exists  #mysql用户已存在
[[email protected]_server software]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)

2.2、创建数据存放目录

[[email protected]_server software]# mkdir -pv /mydata/data  #在生产环境上就建立在LVM卷或存储设备映射过来的卷上
mkdir: created directory `/mydata/data‘
[[email protected]_server software]# chown -R mysql.mysql /mydata/data  #修改数据目录的属主与属组

3、编译安装

[[email protected]_server software]# cd mysql-5.5.36
[[email protected]_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
[[email protected]_server mysql-5.5.36]# make
[[email protected]_server mysql-5.5.36]# make install
[[email protected]_server mysql-5.5.36]# cd /opt/lamp/mysql55/
[[email protected]_server mysql55]# chgrp -R mysql .
[email protected]_server mysql55]# cp support-files/my-large.cnf /etc/my.cnf   #提供配置文件
cp: overwrite `/etc/my.cnf‘? y
[[email protected]_server mysql55]# vim /etc/my.cnf #在[mysqld]字段下加入下边的参数
datadir = /mydata/data
[[email protected]_server mysql55]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 夹 #提供服务脚本
[[email protected]_server mysql55]# chmod +x /etc/rc.d/init.d/mysqld
[[email protected]_server mysql55]# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data  #初始化数据库,看见两个“OK”就初始化成功
[[email protected]_server mysql55]# ls /mydata/data   #在没有启动mysqld服务时此目录有以下这些文件
mysql  mysql-bin.000001  mysql-bin.000002  mysql-bin.index  performance_schema  test
[[email protected]_server mysql55]# service mysqld start  #启动服务
Starting MySQL... SUCCESS!
[[email protected]_server mysql55]# netstat -tnl  #查看3306端口是否监听
[[email protected]_server mysql55]# vim /etc/profile.d/mysql.sh  #导出二进制文件
export PATH=/opt/lamp/mysql55/bin:$PATH
[[email protected]_server mysql55]# source /etc/profile.d/mysql.sh
[[email protected]_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>
[[email protected]_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
[[email protected]_server mysql55]# mysql #测试
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
[[email protected]_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管理员密码丢失的处理

[[email protected]_server mysql55]# pwd
/opt/lamp/mysql55
[[email protected]_server mysql55]# bin/mysqld_safe --skip-grant --skip-networking &  
解释:
--skip-grant     #表示启用时跳过授权表
--skip-networking   # 表示跳过网络,客户端与mysqld通信不用tcp/ip方式,即不监听本地的3306端口,而只能用uninx sock方式通信,如果不加此参数,那会监听本地的3306端口,从安全的角度考虑这是不安全的。
[[email protected]_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
[[email protected]_server ~]# service mysqld restart  #重新启动mysql
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!
[[email protected]_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>
时间: 2024-10-07 21:11:35

CentOS 6.4 64位平台mysql5.5.36源码编译安装的相关文章

烂泥:mysql5.0数据库源码编译安装

本文首发于烂泥行天下. 本次实验的mysql.OS相关信息如下: Mysql:5.0.96 OS:centos 32 bit 最近公司要上新的业务,指明数据库使用的是mysql5.0版本.如果是使用rpm包安装的话,那就很简单了.直接使用yum安装即可,命令如下: yum –y install mysql mysql-server Yum方式安装完毕后,直接启动mysql数据库服务即可.如下图: 这样基本上就可以了. 但是这样安装mysql数据库,没有进行定制.比如mysql数据库的数据文件存储

mysql5.7.11 源码编译安装 (Red hat linux 6.5 )

mysql5.7.11 源码编译安装 (Red hat linux 6.5 ) 一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带mysql, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql    //查看系统自带mysql yum -y remove mysql-*   //卸载mysql rpm -e –nodeps mysql-5.1.73-3.el6_5.x86_64 //卸载mysql 1.2 卸载系统自带b

多实例Mysql5.5.x源码编译安装

多实例Mysql5.5.x源码编译安装 1.  建立Mysql账号 [[email protected] ~]# groupadd mysql [[email protected] ~]# useradd -s /sbin/nologin -g mysql -M mysql useradd参数说明: -s/sbin/nologin 表示禁止该用户登录 -gmysql 指定属于mysql组 -M表示不创建用户家目录 检查创建的用户: [[email protected] ~]# tail -1 /

mysql5.7.10 源码编译安装记录 (centos6.4)【转】

一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系统自带mysql yum -y remove mysql-* //卸载mysql rpm -e --nodeps mysql-5.1.73-3.el6_5.x86_64 //卸载mysql 1.2 卸载系统自带boost,并安装boost_1_59_0 mysql 5.7 依赖于boost_1_59

mysql-5.7.23源码编译安装

mysql-5.7.23源码编译安装 1.下载源码 # wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23.tar.gz # tar xf mysql-5.7.23.tar.gz 2.隐藏版本信息 隐藏版本信息是XX电信运营商提出的变态要求,经测试版本信息不能直接删除,否则编译出错,暂时修改为100.100.100 # cd mysql-5.7.23 # vim VERSION MYSQL_VERSION_MAJOR=100

mysql-5.5.46源码编译安装

1.安装准备 cat /etc/redhat-release uname -r yum install ncurses-devel cmake automake autoconf make gcc gcc-c++ bison -y mkdir /application/data -p groupadd mysql useradd -g mysql  -s  /sbin/nologin -M mysql 2.源码安装 cd  tools tar xf mysql-5.5.46.tar.gz cma

【Linux】Mysql5.7.12源码编译安装及配置

安装环境 Linux(CentOS7.0 版).boost_1_59_0.tar.gz.mysql-5.7.12.tar.gz MySQL 5.7主要特性: 更好的性能:对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的 更好的InnoDB存储引擎 更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库.此外,GTID在线平滑升级也变得可能 更好的优化器:优化器代码重

mysql5.7.22源码编译安装

mkdir /tools && cd /tools mysql下载https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz 下载boost源码https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz groupadd mysql useradd -s /sbin/nologin -M -g mysql mysql y

MySQL5.7.26 源码编译安装

1.安装依赖组件yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel yum -y install zlib zlib-devel cmake ncurses ncurses-devel bison bison-devel如下的几个依赖在CentOS7中需要安装,CentOS6不需要yum -y install perl perl-devel autoconf 2.下载解压源码包(包括boost)tar xzf mysq