Mysql 版本:
 rpm 包
 二进制包
 源码包
一、rpm

mysql.i386
mysql-devel.i386
mysql-server.i386

1、
# yum install mysql mysql-server mysql-devel

服务端:/usr/libexec/mysqld
客户端: /usr/bin/mysql
启动脚本: /usr/bin/mysqld_safe

建立帐号: mysql

2、
# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql 数据存放的目录
socket=/var/lib/mysql/mysql.sock 套接字生成的路径
user=mysql 运行的身份

[mysqld_safe]
log-error=/var/log/mysqld.log 错误日志
pid-file=/var/run/mysqld/mysqld.pid


mysql启动流程
 mysqld服务器端进程初始化---> 读取配置文件my.cnf---> 根据配置文件读取数据--->根据配置文件生成socket文件--->生成其他的文件
# /usr/libexec/mysqld  --verbose --help | head -15
...
Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf
 

3、启动
# service mysqld start

首次启动:
 初始化数据文件,在数据目录生成这些文件
 手工去修改mysql管理员密码

/usr/bin/mysqladmin -u root password '123'
/usr/bin/mysqladmin -u root -h station254.example.com password '123'

4、客户端登录测试

本地socket文件
# mysql -u root -p123

# mysql -u root -p123 -S /var/lib/mysql/mysql.sock
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+

通过tcp/ip协议登录
# mysql -u root -p123 -h 127.0.0.1 -P 3306

# mysql -u root -p123 -h station254.example.com -P 3306

mysql> select user,host,password from mysql.user;
+------+------------------------+------------------+
| user | host                   | password         |
+------+------------------------+------------------+
| root | localhost              | 773359240eb9a1d9 | socket文件登录
| root | station254.example.com |                  | tcp/ip
| root | 127.0.0.1              |                  | tcp/ip
+------+------------------------+------------------+


mysql关闭
 1、service mysqld stop

 2、
 # mysqladmin -u root -p123 -S /var/lib/mysql/mysql.sock  shutdown

 3、直接结束进程,强烈不推荐
  找到mysqld_safe(如果存在就在,不存在就不用找)和mysqld进程,解释kill -9 #PID #PID


其他方式启动
 # mysqld_safe  --defaults-file=/etc/my.cnf &

需要注意的细节:
 相关目录是否存在?
  数据目录,socket生成路径,其他文件保存的目录
 权限是否正确?
  mysql用户具有读写执行权限
 遇到问题找错误日志。

忘记密码怎么办?
 1、把原来的mysql停止
 2、启动
 # mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
  不需要密码就可以登录数据库
 3、登录修改密码
 # mysql -u root -S /var/lib/mysql/mysql.sock
mysql> update mysql.user set password=password('123') where user='root' and host='127.0.0.1';
mysql>flush privileges;
 4、重启mysql,让其恢复需要密码验证的状态

============================================

Mysql 二进制包安装

 1、解压
mysql-5.1.54-linux-i686-glibc23.tar.gz

 2、移动
# mv mysql-5.1.54-linux-i686-glibc23 /usr/local/mysql

 3、编写配置文件
[mysqld]
datadir=/data-binary
socket=/data-binary/mysqld.sock
user=mysql
port=3306

[mysqld_safe]
log-error=/data-binary/mysqld.err
pid-file=/data-binary/mysqld.pid

 4、如果不存在mysql用户,就需要建立
 
 5、建立相关目录,修改权限

 6、初始化数据文件
# cd /usr/local/mysql
# ./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql

 7、启动,改密码
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf  &

# mysqladmin -u root -S /data-binary/mysqld.sock password '123'

 登录测试

=============================================
源码包安装
mysql-5.1.54.tar.gz

1、解压
[root@bd ]# tar xf mysql-5.1.54.tar.gz -C /usr/src/
[root@bd ]# cd /usr/src/mysql-5.1.54/
[root@bd mysql-5.1.54]# yum -y install ncur*

2、编译安装(参数是按照生产的要求来添加)这里只是做范例。
# ./configure --prefix=/usr/local/mysql --enable-assembler  --enable-profiling --enable-local-infile --with-charset=utf8 --with-extra-charsets=gb2312,gbk --with-low-memory --with-big-tables --with-plugins=myisam,innobase,heap

# make && make install

3、建立配置文件
[mysqld]
datadir=/data
socket=/data/mysqld.sock
port=3306
user=mysql


[mysqld_safe]
log-errot=/data/mysqld.err
pid-file=/data/mysqld.pid

4、建立用户,建立目录,修改权限
[root@bd ~]# mkdir /data
[root@bd ~]# useradd -s /sbin/nologin mysql
[root@bd ~]# chown  mysql.mysql /data/

5、初始化数据
# /usr/local/mysql/bin/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql

6、启动,修改密码
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
# /usr/local/mysql/bin/mysqladmin -u root -S /data/mysqld.sock  password '123'

# /usr/local/mysql/bin/mysql -u root -p123 -S /data/mysqld.sock

让其支持service指令启动:

# cp /usr/src/mysql-5.1.54/support-files/mysql.server /etc/rc.d/init.d/mysql5

# chmod 775 /etc/rc.d/init.d/mysql5
# service mysql5 start

mysql> create database uplooking;
mysql> use uplooking;
mysql> create table user (id int,name varchar(16));
mysql> insert into user values (1,'tom'),(2,'mary');
mysql> select * from user;
+------+------+
| id   | name |
+------+------+
|    1 | tom  |
|    2 | mary |
+------+------+