源码编译安装mysql

Posted 田园沃土

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码编译安装mysql相关的知识,希望对你有一定的参考价值。

1       概述

首先来看下mysql的下载地址:

http://ftp.plusline.de/mysql/Downloads/

这里有mysql的各种版本

 

操作系统:CentOS release 6.8 (Final)

数据库版本:mysql-5.6.31

 

2       规划

Mysql程序主目录

/mysql

属组: mysql  属主:root   

Mysql数据目录

/data

属组: mysql  属主:  mysql

Mysql配置文件

/mysql

属组:mysql  属主:  root   

Mysql端口号

3306

 

Sock

/mysql/mysql.sock

属组:mysql  属主:root   

 

 

 

 

 

 

3       安装

3.1     安装前准备

首先要确定一下软件被安装:

cmake,make,gcc,Perl,

 

yum install cmake,make,gcc,Perl -y

3.2     安装

3.2.1     解压软件

tar -zxvf mysql-5.6.31.tar.gz

3.2.2     编译安装

进入mysql目录

cd mysql-5.6.31

创建目录

mkdir bootstarp

配置编译配置的参数

 

cmake ..  -DCMAKE_INSTALL_PREFIX = /mysql     The installation base directory.

-DMYSQL_DATADIR = /data                       The location of the MySQL data directory.

-DSYSCONFDIR=/mysql                           The default my.cnf option file directory.

 

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1

-DMYSQL_TCP_PORT=3306                         The port number on which the server listens for TCP/IP connections. The default is 3306.

-DMYSQL_UNIX_ADDR=/mysql/mysql.sock

3.3     make并且make install

make

make install

至此mysql安装完毕

4       安装后的工作

4.1     初始化数据目录

cd mysql

cp ./support-files/my-default.cnf my.cnf

然后编辑mysql添加如下选择:

basedir = /mysql

datadir = /data

port    = 3306

socket  = /mysql/mysql.scok

更改当前目录的权限

chown  -R mysql .

chgrp  -R mysql .

初始化数据目录

scripts/mysql_install_db --user=mysql

4.2     最后更改安装目录权限

也可以不更改

 

4.3     启动mysql服务器

shell> bin/mysqld_safe --user=mysql &

4.4     测试mysql服务器

shell> bin/mysqladmin version

shell> bin/mysqladmin variables

 

 

4.5     初始化mysql账号

    mysql安装完后,有root用户和匿名户,root用户没有密码,匿名用户表示任何人都可以连接上mysql,这是安全的。

    查看这些用户的语句如下:

mysql> SELECT User, Host, Password FROM mysql.user;

 

因此我们需要给root用户设置密码,给匿名用户设置密码,或者删除匿名用户。

4.5.1     给root用户设置密码

方法一.

使用set命令为上边的每一个用户设置密码。

SET PASSWORD FOR \'root\'@\'localhost\' = PASSWORD(\'111111\');
set password for \'root\'@\'mysql.localdomain\'=password(\'111111\');
set password for \'root\'@\'127.0.0.1\'=password(\'111111\');
SET PASSWORD FOR \'root\'@\'::1\' = PASSWORD(\'111111\');

 

方法二:

我们也可以通过一条命令搞定。

UPDATE mysql.user SET Password = PASSWORD(\'new_password\')   WHERE User = \'root\';
FLUSH PRIVILEGES;

   flush privileges是告诉服务器去重读授权表,否则设置的用户名密码只有到mysql服务器重启后才可以生效。

方法三.

我们也可以通过mysqladmin来给root用户修改密码

mysqladmin -u root password "new_password"
mysqladmin -u root -h host_name password "new_password"
 

4.5.2     给匿名用户设置密码

方法一.

set password for \'\'@\'localhost\'=password(\'111111\');
set password for \'\'@\'mysql.localdomain\'=password(\'111111\');

方法二.

UPDATE mysql.user SET Password = PASSWORD(\'new_password\') WHERE User = \'\';
FLUSH PRIVILEGES;

4.5.3     删除匿名用户

DROP USER \'\'@\'localhost\';
DROP USER \'\'@\' mysql.localdomain \';

5       test安全问题

   默认情况下,mysql.db表里含了一些行,这些行定义了任何用户都可以访问test数据库,或者以test_开头的数据库,这是安全的,应该移除。

DELETE FROM mysql.db WHERE Db LIKE \'test%\';
DELETE FROM mysql.db WHERE Db LIKE \'test%\';

或者删除test数据库,不建立以test开头的数据库。

以上是关于源码编译安装mysql的主要内容,如果未能解决你的问题,请参考以下文章

Linux下源码安装编译mysql数据库

MySQL源码编译安装

MySQL源码编译安装

源码编译安装mysql

linux下源码编译安装mysql详解

Linux安装MySQL(源码安装)