关于在Centos系统下安装MYSQL数据库,网络上资料有很多,在此主要感谢该文章的博主:,因为相对来说,该篇文章具有很强的操作性。此文将在汇集众多资料的基础上,记录本人安装MYSQL的全过程。

一、配置环境与软件版本:

1、Centos版本:6.3版32位系统;

2、CMake版本:cmake-2.8.4.tar.gz;

3、Mysql版本:mysql-5.5.11.tar.gz;

二、安装过程如下:

该安装过程采用CMake编译的方式安装Mysql,所以需要安装CMake工具,再安装Mysql数据库,在安装这两个软件之前,需要安装gcc与ncurses-devel。

1、安装gcc编译工具,执行如下命令:

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

如果提示安装:Complete! 表示安装成功。

2、安装ncurses-devel编译工具,执行如下命令:

[root@localhost soft]# yum install ncurses-devel

如果提示安装:Complete! 表示安装成功。

3、安装CMake工具,执行软件解压命令和剪切到/usr/local目录下:

[root@localhost soft]# tar -zxvf cmake-2.8.4.tar.gz

[root@localhost soft]# mv cmake-2.8.4 /usr/local/cmake

进入到/usr/local/cmake目录下进行安装:

[root@localhost cmake]# ./configure

[root@localhost cmake]# make

[root@localhost cmake]# make install

将cmake永久加入系统环境变量:

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

在/etc/profile文件中添加与设置相应的环境变量:

export CMAKE_HOME=/usr/local/cmake

export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin:$CMAKE_HOME/bin

注:红色部分的分号不要丢掉。

使/etc/profile文件立即生效:

[root@localhost cmake]# . /etc/profile

注:.与/etc/profile之间有空格。

查看设置的环境变量是否已生效:

[root@localhost cmake]# echo $PATH

显示结果:

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.6.0_30/bin:/usr/local/ant/bin:/root/bin:/usr/java/jdk1.6.0_30/bin

:/usr/local/ant/bin:/usr/local/cmake/bin

红色部分显示我们设置的环境变量已经生效。

4、安装Mysql数据库,执行软件解压命令和剪切到/usr/local目录下:

[root@localhost soft]# tar -zxvf mysql-5.5.11.tar.gz

[root@localhost soft]# mv mysql-5.5.11 /usr/local/mysql-5.5.11

创建mysql的安装目录及数据库存放目录:

[root@localhost soft]# mkdir -p /usr/local/mysql

[root@localhost soft]# mkdir -p /usr/local/mysql/data

创建mysql用户及用户组:

[root@localhost soft]# groupadd mysql

[root@localhost soft]# useradd -r -g mysql mysql

进入mysql-5.5.11主目录,编译安装mysql:

[root@localhost mysql-5.5.11]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

> -DDEFAULT_CHARSET=utf8 \

> -DDEFAULT_COLLATION=utf8_general_ci \

> -DWITH_MYISAM_STORAGE_ENGINE=1 \

> -DWITH_INNOBASE_STORAGE_ENGINE=1 \

> -DWITH_MEMORY_STORAGE_ENGINE=1 \

> -DWITH_READLINE=1 \

> -DENABLED_LOCAL_INFILE=1 \

> -DMYSQL_DATADIR=/usr/local/mysql/data \

> -DMYSQL_USER=mysql \

> -DMYSQL_TCP_PORT=3306

注:“>” 标识符是在行尾键入“\”符号时自动产生的。

[root@localhost mysql-5.5.11]# make

[root@localhost mysql-5.5.11]# make install

进入Mysql数据库的安装主目录/usr/local/mysql,设置相关的目录权限:

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

[root@localhost mysql]# chown -R mysql:mysql data

注:把mysql数据库主目录中所有文件的所有者设为root,所属组为mysql。

将mysql的启动服务添加到系统服务中:

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

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

创建系统数据库的表:

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

执行结果:

Installing MySQL system tables...

OK

Filling help tables...

OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password 'new-password'

./bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:

./bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems with the ./bin/mysqlbug script!

Installing MySQL system tables...

OK

Filling help tables...

OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password 'new-password'

./bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:

./bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default. This is

strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems with the ./bin/mysqlbug script!

设置MYSQL的环境变量并做生效处理:

[root@localhost mysql]# vi /root/.bash_profile

在修改PATH=$PATH:$HOME/bin为:PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

最终如图:

centos 查看mysql_config目录_mysql

[root@localhost mysql]# source /root/.bash_profile

注:红色部分是文件生效处理,很重要。

手动启动Mysql数据库:

[root@localhost mysql]# ./bin/mysqld_safe --user=mysql & mysqladmin -u root -p shutdown

注:启动MySQL,提示输入密码时,不要输入密码,直接回车即可。

提示:

mysqladmin: connect to server at 'localhost' failed

error: 'Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock' (2)'

Check that mysqld is running and that the socket: '/usr/local/mysql/mysql.sock' exists!

[root@localhost mysql]# 140223 21:59:54 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended

[1]+  Done                    ./bin/mysqld_safe --user=mysql

mysqladmin: connect to server at 'localhost' failed

error: 'Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock' (2)'

Check that mysqld is running and that the socket: '/usr/local/mysql/mysql.sock' exists!

[root@localhost mysql]# 140223 21:59:54 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended

[1]+ Done ./bin/mysqld_safe --user=mysql

将Mysql的启动服务添加到系统服务中:

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

启动Mysql服务:

[root@localhost mysql]# service mysql start

最终结果:

Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

注:这里是权限问题,先改变权限。

[root@localhost mysql]# chown -R mysql:mysql /usr/local/mysql

再次启动Mysql服务:

[root@localhost mysql]# /etc/init.d/mysql start

Starting MySQL... SUCCESS!

Starting MySQL... SUCCESS!

修改MySQL的root用户的密码以及打开远程连接:

[root@localhost mysql]# mysql -u root mysql

进入MySQL数据库管理系统:

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

Your MySQL connection id is 1

Server version: 5.5.11-log Source distribution

Copyright (c) 2000, 2010, 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>

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

Your MySQL connection id is 1

Server version: 5.5.11-log Source distribution

Copyright (c) 2000, 2010, 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>

在MySQL命令行执行如下命令:

mysql> use mysql;

Database changed

mysql> desc user;

centos 查看mysql_config目录_MySQL_02

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> update user set Password = password('admin') where User='root';

Query OK, 5 rows affected (0.01 sec)

Rows matched: 5  Changed: 5  Warnings: 0

Query OK, 5 rows affected (0.01 sec)

Rows matched: 5 Changed: 5 Warnings: 0

mysql> select Host,User,Password from user where User='root';

centos 查看mysql_config目录_sql_03

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

重新登录:

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

centos 查看mysql_config目录_centos mysql 静态库_04

从图中可以看到,成功登录,至此Mysql数据库的安装与权限配置完毕。

三、验证数据库的基本功能:

1、查看数据库表:

mysql> show tables;

结果如图:

centos 查看mysql_config目录_sql_05

结果正常。

四、问题:

本人在配置的过程中,一开始先改变了系统的主机名,发现在执行登陆的时候登陆不了,报“链接不上 localhost”,但是在取消主机名之后,安装过程顺利,如果有大牛知道这个问题,望不吝赐教。