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

linux下mysql的源码安装

2015-06-08 10:38 666 查看
mysql有多中安装方法,本文只涉及编译安装,对其他方法感兴趣的可以自行百度。

1、首先获取mysql软件安装包,这里用wget下载

[root@localhost ~]# wget http://download.chinaunix.net/down.php?id=38987&ResourceID=7159&site=1[/code] 
2、解压

[root@localhost ~]# tar zxvf mysql-5.1.62.tar.gz


3、创建相关文件夹并配置

[root@localhost ~]# cd mysql-5.1.62
[root@localhost mysql-5.1.62]# mkdir -p /usr/local/mysql
[root@localhost mysql-5.1.62]# mkdir -p /usr/local/mysql/tmp/
[root@localhost mysql-5.1.62]# ./configure --prefix=/usr/local/mysql --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --enable-assembler --enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --without-debug --with--pyhread --enable-assembler --with-extra-charsets=complex --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase --with-plugin-PLUGIN --with-mysqld-ldflags=all-static --with-client-ldflags=all-static


配置完成后查看是否有报错,正常配置结果如下

configure: WARNING: unrecognized options: --with--pyhread, --with-plugin-PLUGIN

Thank you for choosing MySQL!

Remember to check the platform specific part of the reference manual
for hints about installing MySQL on your platform.
Also have a look at the files in the Docs directory.


说明:

1.可以通过执行./configure -help命令来详细查看以上各参数的用途。

2.如果编译过程中提示不支持的参数,可使用./configure -help查看该mysql版本是否支持该参数

4、编译并生成mysqld的执行文件

[root@localhost mysql-5.1.62]# make


报错:gcc: all-static: No such file or directory

不支持all-static参数,查看./configure -help发现5.1.62版本的mysql确实没有all-static这个参数

[root@localhost mysql-5.1.62]# ./configure -help |grep "all-static"
[root@localhost mysql-5.1.62]#


去掉all-static重新配置编译

[root@localhost mysql-5.1.62]# ./configure --prefix=/usr/local/mysql --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --enable-assembler --enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --without-debug --with--pyhread --enable-assembler --with-extra-charsets=complex --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase --with-plugin-PLUGIN


5、安装mysql

[root@localhost mysql-5.1.62]# make install


6、获取配置文件

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


7、创建数据库文件

[root@localhost mysql-5.1.62]# mkdir -p /usr/local/mysql/data  #建立mysql数据文件目录
[root@localhost mysql-5.1.62]# chown -R mysql.mysql /usr/local/mysql/   #授予mysql用户对目录的权限
[root@localhost mysql-5.1.62]# /usr/local/mysql/bin/mysql_install_db --user=mysql  #初始化数据文件,安装mysql数据库文件;执行结果如下:

Installing MySQL system tables...
150525 16:46:45 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
OK
Filling help tables...
150525 16:46:45 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
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:

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

Alternatively you can run:
/usr/local/mysql/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 /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/mysql/bin/mysqlbug script!

[root@localhost mysql-5.1.62]#


8、启动mysql

[root@localhost mysql-5.1.62]# /usr/local/mysql/bin/mysqld_safe &  #启动mysql
[1] 5907
[root@localhost mysql-5.1.62]# 150525 16:53:53 mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
150525 16:53:53 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@localhost mysql-5.1.62]# netstat -lnt|grep 3306  #mysql默认端口3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
[root@localhost mysql-5.1.62]# mysql  #mysql登录
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.62 Source distribution

Copyright (c) 2000, 2012, 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> quit
Bye


安装完后我们还要查看并删除多余用户

[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.62 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All ri

Oracle is a registered trademark of Oracle Corporation and/or
affiliates. Other names may be trademarks of their respective
owners.

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

mysql> select user,host from mysql.user;
+------+-----------------------+
| user | host                  |
+------+-----------------------+
| root | 127.0.0.1             |
|      | localhost             |
| root | localhost             |
|      | localhost.localdomain |
| root | localhost.localdomain |
+------+-----------------------+
5 rows in set (0.00 sec)

mysql> drop user ""@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> drop user ""@localhost.localdomain
-> ;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;
+------+-----------------------+
| user | host                  |
+------+-----------------------+
| root | 127.0.0.1             |
| root | localhost             |
| root | localhost.localdomain |
+------+-----------------------+
3 rows in set (0.00 sec)

mysql>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 编译 安装