您的位置:首页 > 运维架构 > Linux

centos6.5 源码安装 mysql

2014-09-24 16:18 501 查看
1、下载源码包

我的版本:mysql-5.6.4-m7.tar.gz

2、安装之前先卸载CentOS自带的MySQL

[root@localhost ~]# yum remove mysql

3、编译安装cmake

可以直接 yum install cmake

下载cmake源码包:http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz

4、如果是在windows下下载的自己想办法提交到服务器上(ftp、或者svn都行)

然后放到 /usr/local 目录下 如果熟练的话可以根据个人创建一个目录来专门存放源码包的

5、解压安装cmake

[root@localhost usr]# tar xzvf cmake-2.8.12.2.tar.gz

[root@localhost usr]# cd cmake-2.8.12.2

[root@localhost cmake-2.8.12.2]# ./bootstrap

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

CMake2.8.12.2, Copyright 2000-2009 Kitware, Inc.

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

Error when bootstrapping CMake:

Cannot find appropriate C compiler on this system.

Please specify one using environment variable CC.

See cmake_bootstrap.log for compilers attempted.

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

Log of errors: /usr/local/src/cmake-2.8.12.2/Bootstrap.cmk/cmake_bootstrap.log

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

报错:缺少C的编译器

解决办法:安装gcc编译器

[root@localhost ~]# yum install gcc

继续安装Cmake

[root@localhost cmake-2.8.12.2]# ./bootstrap

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

CMake 2.8.4, Copyright 2000-2009 Kitware, Inc.

C compiler on this system is: cc

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

Error when bootstrapping CMake:

Cannot find appropriate C++ compiler on this system.

Please specify one using environment variable CXX.

See cmake_bootstrap.log for compilers attempted.

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

Log of errors: /usr/local/src/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log

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

报错:缺少C++编译器

解决办法:安装gcc-c++编译器

[root@localhost ~]# yum install gcc-c++

再次安装

[root@localhost cmake-2.8.12.2]# ./bootstrap

没有报错,编译安装

[root@localhost cmake-2.8.12.2]# gmake

[root@localhost cmake-2.8.12.2]# gmake install

4.正式开始安装MySQL

添加MySQL用户和用户组

[root@localhost ~]# groupadd mysql

[root@localhost ~]# useradd -g mysql mysql

MySQL源码包从共享文件夹移至/usr并解压

[root@localhost ~]# mv /home/user/mysql-5.6.4.tar.gz /usr/mysql-5.6.4.tar.gz

[root@localhost usr]# tar xzvf mysql-5.6.4.tar.gz

[root@localhost usr]# cd mysql-5.6.4

Cmake运行

[root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \


-DWITH_EXTRA_CHARSETS=all \

-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DSYSCONFDIR=/etc \
-DINSTALL_SHAREDIR=share

开始编译安装

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

进入安装目录,将程序二进制的所有权改为root,数据目录的说有权改为mysql用户,更新授权表

[root@localhost mysql-5.5.22]# cd /usr/local/mysql/

[root@localhost mysql]# chown -R root .

[root@localhost mysql]# chown -R mysql .

[root@localhost mysql]# chgrp -R mysql .

[root@localhost mysql]# scripts/mysql_install_db --user=mysql

注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

安全启动MySQL(默认密码为空)

[root@localhost mysql]# ./bin/mysqld_safe --user=mysql&

source /etc/profile

报错:

120908 00:16:25 mysqld_safe Logging to '/usr/local/mysql/data/CentOS.err'.

120908 00:16:26 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

解决方法:

[root@CentOS ~]# cd /usr/local/mysql/data

[root@CentOS data]# ls -l

总用量 29744

-rw-rw---- 1 mysql root 1585 9月 8 00:16 CentOS.err

-rw-rw---- 1 mysql mysql 6 9月 8 00:16 CentOS.pid

-rw-rw---- 1 mysql mysql 18874368 9月 8 00:16 ibdata1

-rw-rw---- 1 mysql mysql 5242880 9月 8 00:16 ib_logfile0

-rw-rw---- 1 mysql mysql 5242880 9月 8 00:16 ib_logfile1

drwxr-xr-x 2 mysql mysql 4096 9月 8 00:14 mysql

-rw-rw---- 1 mysql mysql 27293 9月 8 00:14 mysql-bin.000001

-rw-rw---- 1 mysql mysql 1031892 9月 8 00:14 mysql-bin.000002

-rw-rw---- 1 mysql mysql 107 9月 8 00:16 mysql-bin.000003

-rw-rw---- 1 mysql mysql 57 9月 8 00:16 mysql-bin.index

drwx------ 2 mysql mysql 4096 9月 8 00:14 performance_schema

drwxr-xr-x 2 mysql mysql 4096 9月 8 00:08 test

[root@CentOS data]# chgrp -R mysql CentOS.err

[root@CentOS data]# ls -l

总用量 29736

-rw-rw---- 1 mysql mysql 1585 9月 8 00:16 CentOS.err

-rw-rw---- 1 mysql mysql 6 9月 8 00:16 CentOS.pid

-rw-rw---- 1 mysql mysql 18874368 9月 8 00:16 ibdata1

-rw-rw---- 1 mysql mysql 5242880 9月 8 00:16 ib_logfile0

-rw-rw---- 1 mysql mysql 5242880 9月 8 00:16 ib_logfile1

drwxr-xr-x 2 mysql mysql 4096 9月 8 00:14 mysql

-rw-rw---- 1 mysql mysql 27293 9月 8 00:14 mysql-bin.000001

-rw-rw---- 1 mysql mysql 1031892 9月 8 00:14 mysql-bin.000002

-rw-rw---- 1 mysql mysql 107 9月 8 00:16 mysql-bin.000003

-rw-rw---- 1 mysql mysql 57 9月 8 00:16 mysql-bin.index

drwx------ 2 mysql mysql 4096 9月 8 00:14 performance_schema

drwxr-xr-x 2 mysql mysql 4096 9月 8 00:08 test

配置用户

MySQL启动成功后,root默认没有密码,我们需要设置root密码。

设置之前,我们需要先设置PATH,要不不能直接调用mysql

修改/etc/profile文件,在文件末尾添加

[root@localhost mysql]#vi /etc/profile

复制代码代码如下:

PATH=/usr/local/mysql/bin:$PATH

export PATH


关闭文件,运行下面的命令,让配置立即生效

复制代码代码如下:

[root@localhost mysql]# source /etc/profile

连接本机MySQL

[root@localhost mysql]#mysql –u root –p

提示输入password,默认为空,按Enter即可

断开连接

mysql>exit;

为root账户设置密码

[root@localhost mysql]# mysqladmin -u root password 123456

Enter Password:123456

设置选项文件,将配置文件拷贝到/etc下

[root@localhost mysql]# cp support-files/my-medium.cnf /etc/mysql.cnf

设置开机自启动

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql

[root@localhost mysql]# chmod +x /etc/init.d/mysql

[root@localhost mysql]# chkconfig mysql on



通过服务来启动和关闭Mysql

[root@localhost ~]# service mysql start

[root@localhost ~]# service mysql stop

5.安装设置完毕,之后使用只需启动-连接-断开-关闭,命令如下:

[root@CentOS mysql]# service mysql start

Starting MySQL.. [确定]

[root@CentOS mysql]# mysql -u root -p

Enter password:

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

Your MySQL connection id is 1

Server version: 5.5.22 Source distribution

Copyright (c) 2000, 2011, 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> show databases;

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

| Database |

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

| information_schema |

| mysql |

| performance_schema |

| test |

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

4 rows in set (0.07 sec)

mysql> exit;

Bye

[root@CentOS mysql]# service mysql stop

Shutting down MySQL. [确定]

6.其它:

查看进程命令 ps –ef|grep mysqld

kill进程命令 kill –9 进程号

编译mysql出现CMake Error at cmake/readline.cmake:83 (MESSAGE)

-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:83 (MESSAGE):

Curses library not found. Please install appropriate package,

remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is
libncurses5-dev, on Redhat and derivates it is ncurses-devel.

Call Stack (most recent call first):

cmake/readline.cmake:127 (FIND_CURSES)

cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)

CMakeLists.txt:257 (MYSQL_CHECK_READLINE)

-- Configuring incomplete, errors occurred!

该报错原因是未安装ncurses-devel,运行下面命令

第一步:安装

#yum -y install ncurses-devel

第二步:删除CMakeCache.txt

通过find命令找到所有CMakeCache.txt文档的位置

#find / -name CMakeCache.txt

然后全部删除:

# rm -rf /usr/local/src/cmake-2.8.6/Tests/Complex/Cache/CMakeCache.txt

# rm -rf /usr/local/src/cmake-2.8.6/Tests/ComplexOneConfig/Cache/CMakeCache.txt

# rm -rf /usr/local/src/cmake-2.8.6/Tests/ComplexRelativePaths/Cache/CMakeCache.txt

# rm -rf /usr/local/src/mysql-5.5.18/CMakeCache.txt

解决方法:

1. 改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql; www.2cto.com

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

2. 授权法。

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; www.2cto.com

FLUSH PRIVILEGES;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

在Mysql集群中创建用户时、出现如下错误!

mysql> create user 'testuse'@'localhost' identified by '111111';

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解决办法:

在命令行输入:mysql> flush privileges;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: