一.下载说明
前期的一些准备说明,参考:
http://blog.csdn.net/tianlesoftware/article/details/6999245
http://blog.csdn.net/tianlesoftware/article/details/6723117
MySQL 分为Community Server 和 Enterprise Edition。 其中Community Server 可以直接从mysql 的官网下载。Enterprice Edition 只能从Oracle edelivery上下载,不过Edelivery 现在已经屏蔽了中国的IP,如果国内的用户一般不能从edelivery上下载,需要翻墙出去才能下载。
1.1 官方文档上有关MySQL安装文件类型说明:
http://dev.mysql.com/doc/refman/5.5/en/index.html
Linux supports anumber of different solutions for installing MySQL. The recommended method isto use one of the distributions from Oracle. If you choose this method, thereare three options available:
(1)Installingfrom a generic binary package in .tar.gz format. See Section 2.2,“Installing MySQL from Generic Binaries on Unix/Linux” for moreinformation.
(2)Extractingand compiling MySQL from a source distribution. For detailed instructions,see Section 2.9, “InstallingMySQL from Source”.
(3)Installingusing a pre-compiled RPM package. For more information on using the RPMsolution, see Section 2.5.1,“Installing MySQL from RPM Packages on Linux”.
--这里讲了3种方式来安装MySQL数据库,我这里用最简单的RPM 包来安装。
As analternative, you can use the native package manager within your Linuxdistribution to automatically download and install MySQL for you. Nativepackage installations can take of the download and dependencies required to runMySQL, but the MySQL version will often be some way behind the currentlyavailable release. You will also normally be unable to install developmentalreleases, as these are not usually made available in the native repository. Formore information on using the native package installers, see Section 2.5.2,“Installing MySQL on Linux using Native Package Manager”.
Note
For many Linux installations,you will want to set up MySQL to be started automatically when your machinestarts. Many of the native package installations perform this operation foryou, but for source, binary and RPM solutions you may need to set this upseparately. The required script, mysql.server,can be found in the support-filesdirectory under the MySQL installationdirectory or in a MySQL source tree. You can install itas/etc/init.d/mysql for automatic MySQL startup and shutdown. See Section 2.10.1.2,“Starting and Stopping MySQL Automatically”.
--这里要注意一个问题,就是设置MySQL的自启动。 如果使用native package来安装,会自动设置为自启动,如果使用其他的方式,如source,binary和RPM,就需要单独的来设置自启动。
1.2 下载安装包
我这里下载Community Server 版的,Enterprise Edition版的请到Oracle E-Delivery上下载。Enterprise Edition 有30天的试用期。
Community Server下载地址:http://www.mysql.com/downloads/mysql/
这里要注意的,MySQL的Tar 包还是比较大,要比RPM包大3倍左右。
MySQL 的RPM 包有如下几个:
看一下每个rpm 包具体的描述:
(1)MySQL-server-VERSION.glibc23.i386.rpm
The MySQLserver. You need this unless you only want to connect to a MySQL server runningon another machine.
(2)MySQL-client-VERSION.glibc23.i386.rpm
The standardMySQL client programs. You probably always want to install this package.
(3)MySQL-devel-VERSION.glibc23.i386.rpm
The librariesand include files that are needed if you want to compile other MySQL clients,such as the Perl modules.
(4)MySQL-debuginfo-VERSION.glibc23.i386.rpm
This packagecontains debugging information. debuginfo RPMs are never needed touse MySQL software; this is true both for the server and for client programs.However, they contain additional information that might be needed by a debuggerto analyze a crash.
(5)MySQL-shared-VERSION.glibc23.i386.rpm
This packagecontains the shared libraries (libmysqlclient.so*) that certain languages andapplications need to dynamically load and use MySQL. It containssingle-threaded and thread-safe libraries. Prior toMySQL 5.5.6, if you install this package, do not installthe MySQL-shared-compat package.
(6)MySQL-shared-compat-VERSION.glibc23.i386.rpm
This packageincludes the shared libraries for MySQL 3.23, 4.0, and so on. It containssingle-threaded and thread-safe libraries. Install this package if you have applicationsinstalled that are dynamically linked against older versions of MySQL but youwant to upgrade to the current version without breaking the librarydependencies. Before MySQL 5.5.6, MySQL-shared-compat also includesthe libraries for the current release, so if you install it, you should notalso install MySQL-shared. As of 5.5.6, MySQL-shared-compat doesnot include the current library version, so there is no conflict.
(7)MySQL-embedded-VERSION.glibc23.i386.rpm
The embeddedMySQL server library.
(8)MySQL-test-VERSION.glibc23.i386.rpm
This packageincludes the MySQL test suite.
(9)MySQL-VERSION.src.rpm
This containsthe source code for all of the previous packages. It can also be used torebuild the RPMs on other architectures (for example, Alpha or SPARC).
二. 安装MySQL
2.1 安装说明
(1)MySQL的安装包有很多个,作用也不同,在大多数情况下,只需要安装MySQL-server 和 MySQL-client,其他的包根据需要来安装。
(2)The server RPM places data underthe /var/lib/mysql directory. The RPM also creates a login accountfor a user named mysql (if one does not exist) to use for running theMySQL server, and creates the appropriate entries in /etc/init.d/ tostart the server automatically at boot time. (This means that if you haveperformed a previous installation and have made changes to its startup script,you may want to make a copy of the script so that you do not lose it when youinstall a newer RPM.)
(3)During RPM installation, a usernamed mysql and a group named mysql are created on thesystem. This is done using the useradd, groupadd,and usermod commands. Those commands require appropriateadministrative privileges, which is required for locally managed users andgroups (as listed in the /etc/passwd and /etc/groupfiles) by theRPM installation process being run by root.
--在MySQL 安装时,会创建mysql 用户和mysql组。
(4)MySQL 的相关目录说明
/usr/bin : Client programs and scripts -- mysqladmin mysqldump等命令
/usr/sbin: The mysqld server
/var/lib/mysql: Log files, databases --这个目录就是数据库的目录
/usr/share/info: Manual in Info format
/usr/share/man: Unix manual pages
/usr/include/mysql: Include (header) files
/usr/lib/mysql: Libraries
/usr/share/mysql : Miscellaneous support files,including error messages, character set files, sample configuration files, SQLfor database installation
--mysql.server命令及配置文件
/usr/share/sql-bench: Benchmarks
/etc/rc.d/init.d/: 启动脚本文件mysql的目录
2.2 安装
--安装Server端:
[root@rac2 software]# ls
MySQL-client-5.5.15-1.rhel5.x86_64.rpm
MySQL-devel-5.5.15-1.rhel5.x86_64.rpm
MySQL-embedded-5.5.15-1.rhel5.x86_64.rpm
MySQL-server-5.5.15-1.rhel5.x86_64.rpm
MySQL-shared-5.5.15-1.rhel5.x86_64.rpm
MySQL-shared-compat-5.5.15-1.rhel5.x86_64.rpm
MySQL-test-5.5.15-1.rhel5.x86_64.rpm
[root@rac2 software]# rpm -ivh MySQL-server-5.5.15-1.rhel5.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
PLEASE REMEMBER TO SET A PASSWORD FOR THEMySQL root USER !
To do so, start the server, then issue thefollowing commands:
/usr/bin/mysqladmin -u root password'new-password'
/usr/bin/mysqladmin -u root -h rac2password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option ofremoving the test
databases and anonymous user created bydefault. This is
strongly recommended for productionservers.
See the manual for more instructions.
Please report any problems with the /usr/bin/mysqlbugscript!
[root@rac2 software]#
--- 安装客户端
[root@rac2 software]# rpm -ivh MySQL-client-5.5.15-1.rhel5.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-client ###########################################[100%]
2.3 其他操作
2.3.1 查看在时创建的mysql用户和mysql group:
[root@rac2 bin]# cat /etc/passwd|grep mysql
mysql:x:103:106:MySQLserver:/var/lib/mysql:/bin/bash
[root@rac2 bin]# cat /etc/group | grepmysql
mysql:x:106:
2.3.2 修改密码
--连接MySQL 报错:
[root@rac2 software]# mysql
ERROR 2002 (HY000): Can't connect to localMySQL server through socket '/var/lib/mysql/mysql.sock' (2)
--启动MySQL 后,在连正常:
[root@rac2 ~]# /etc/init.d/mysql start
Starting MySQL... [ OK ]
[root@rac2 init.d]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.15 MySQL CommunityServer (GPL)
Copyright (c) 2000, 2010, Oracle and/or itsaffiliates. All rights reserved.
Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.
Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.
mysql>
--注意这里,因为MySQL默认没有密码,所以这里我们没有输入密码就直接连上了。
--修改密码,这个是安装Server 中提示的:
[root@rac2 ~]# /usr/bin/mysqladmin -u root password root
[root@rac2 ~]# mysql
ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)
--修改密码之后,就提示要使用密码了。
[root@rac2 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.15 MySQL CommunityServer (GPL)
Copyright (c) 2000, 2010, Oracle and/or itsaffiliates. All rights reserved.
Oracle is a registered trademark of OracleCorporation and/or its affiliates. Other names may be trademarks of theirrespective owners.
Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.
mysql>
--输入密码后成功连接。
2.3.3 查看MySQL端口 3306, 这个是默认端口:
[root@rac2 ~]# netstat -nat|grep 3306
tcp 0 0 192.168.3.100:32842 192.168.3.100:3306 TIME_WAIT
tcp 0 0 :::3306 :::* LISTEN
2.3.4 设置开机自启动
--查看MySQL 开机自启动设置:
[root@rac2 ~]# chkconfig --list |grep mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
这里的数字分别代表Linux启动的不同模式,3是命令行,5是窗口。
--关闭开机自启动
[root@rac2 ~]# chkconfig mysql off
[root@rac2 ~]# chkconfig --list |grep mysql
mysql 0:off 1:off 2:off 3:off 4:off 5:off 6:off
--启用开机自启动:
[root@rac2 ~]# chkconfig mysql on
[root@rac2 ~]# chkconfig --list |grep mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@rac2 ~]#
--将Mysql 从chkconfig服务里删除:
[root@rac2 ~]# chkconfig --del mysql
[root@rac2 ~]# chkconfig --list |grep mysql
--将Mysql 添加到chkconfig里:
[root@rac2 ~]# chkconfig --add mysql
[root@rac2 ~]# chkconfig --list |grep mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.4 数据库操作
[root@rac2 ~]# 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.5.15 MySQL CommunityServer (GPL)
Copyright (c) 2000, 2010, Oracle and/or itsaffiliates. All rights reserved.
Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.
Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.
--查看已经存在的数据库,这几个是安装时自动创建的
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
--使用mysql 数据库
mysql> use mysql
Reading table information for completion oftable and column names
You can turn off this feature to get aquicker startup with -A
Database changed
--查看mysql 数据库下面的表
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.01 sec)
--创建数据库Dave
mysql> create database dave;
Query OK, 1 row affected (0.01 sec)
--在dave 数据库下面创建dave表:
mysql> use dave;
Database changed
mysql> create table dave(id int,namechar(20));
Query OK, 0 rows affected (0.01 sec)
--查看dave 表结构:
mysql> desc dave;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | char(20) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
--向dave 表里插入2条记录:
mysql> insert into davevalues(1,'dave');
Query OK, 1 row affected (0.00 sec)
mysql> insert into davevalues(2,'anqing');
Query OK, 1 row affected (0.01 sec)
mysql> select * from dave;
+------+--------+
| id | name |
+------+--------+
| 1 | dave |
| 2 | anqing |
+------+--------+
2 rows in set (0.00 sec)
--update 表:
mysql> update dave set name='david dai'where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from dave;
+------+-----------+
| id | name |
+------+-----------+
| 1 | david dai |
| 2 | anqing |
+------+-----------+
2 rows in set (0.00 sec)
--drop 表:
mysql> drop table dave;
Query OK, 0 rows affected (0.01 sec)
--drop 数据库:
mysql> drop database dave;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)