服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

dirtysea 发表于 2010-4-4 23:46:35

详细设置MySQL5.1.45免安装版/二进制版

安装方法有用二进制安装的,即不需要编译;有用RPM包安装;有用源码安装的(Source),即需要编译.
####后缀带有glibc的,表示是用glibc已编译的二进制版本,解压就能用了。
Intel c/c++ compiled表示使用intel CC编译器编译的二进制版本,在intel处理器上有更好的性能。
i686并非64位,而是32位
只有AMD 64 和INTEL 64才是64位的####
二进制安装如下(安装环境:虚拟机下centos5.2内核2.6.18-92.el5默认安装)
一、下载
Linux (non RPM, Intel C/C++ compiled, glibc-2.3)然后上传到/usr/local/
二、安装

1. groupadd mysql    #添加mysql用户及用户组
2. useradd -g mysql mysql
3. cd /usr/local
4. tar -xvf mysql-5.1.40-linux-i686-icc-glibc23.tar.gz

5. ln -s mysql-5.1.40-linux-i686-icc-glibc23 mysql   #ln(link)相当WIN的快捷方式有软硬之分
6. cd mysql
   #cp support-files/my-large.cnf /etc/my.cnf   在support-files下有4个模板文件根据不同内存选择复制
   #vi /etc/my.cnf将socket=/tmp/mysql.sock 修改为socket=/var/lib/mysql/mysql.sock

7. scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql
8. chown -R root :mysql .   #修改mysql目录权限(注意命令中的" . "符号不能少)
9. chown -R mysql data   
10. bin/mysqld_safe --basedir=/usr/local/mysql --user=mysql &
(如果没有问题的话,应该会出现类似这样的提示:
             42264
            # Starting mysqld daemon with databases from /usr/local/mysql/var
       如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,log文件的通常在/etc/my.cnf中配置。
       大多数问题是权限设置不正确引起的。 )
至此,安装完成。
使用mysql命令**控制台
现在数据库安装完成. 但不能运行mysql 命令 因为Mysql的安装目录并没有在系统环境变量下
修改/etc/profile, 在export 之上
添加如下两行
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin

退出系统重新**或执行source /etc/profile 使环境变量生效

mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 63778 to server version: 5.0.41-log

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

mysql>


系统默认没有设置mysql的root密码, 为了安全,我们需要为mysql的root 设置密码
mysqladmin password 'kulong'


然后使用mysql -u root -p 提示输入密码 输入后**
如果系统为Redhat 或Centos 可以将Mysql 加入到系统服务中, 开机自动运行.

使用service mysqld start|stop|........... 进行管理

cp support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql                     
chkconfig --add mysql                                 
chkconfig --level 345 mysqld on                     

开机后即可自动启动

查看3306端口是否打开。要注意在防火墙中开放该端口。
#netstat -atln

dirtysea 发表于 2010-4-5 01:30:12

三. 日常使用与维护

1. 建立数据库

mysql> CREATE DATABASE menagerie;


2. 建立表

mysql> USE menagerie

Database changed

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);


表的描述

describe pet;
+---------+-------------+------+-----+---------+-------+
| Field   | Type      | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | YES |   | NULL    |       |
| owner   | varchar(20) | YES |   | NULL    |       |
| species | varchar(20) | YES |   | NULL    |       |
| sex   | char(1)   | YES |   | NULL    |       |
| birth   | date      | YES |   | NULL    |       |
| death   | date      | YES |   | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)


插入数据
mysql> INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

检索pet 表内所有信息
mysql> SELECT * FROM pet;

更新匹配行的内容
mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';

删除匹配行的内容
mysql> DELETE from pet where birth = '1989-08-31'

删除表
mysql> drop table pet;

删除数据库
mysql> drop database menagerie;
Query OK, 0 rows affected (0.00 sec)

添加用户和密码
mysql> grant all on SMS.* to 'backup'@'localhost' identified by '123456789';

添加用户backup 密码为123456789 有SMS库的select update select delete 权限 允许本地连接
如果想要远程连接 localhost 换成ip即可

3. 数据库的备份与恢复

使用mysqldump 进行备份与恢复
1). 备份名字为database的库
mysqldump -uroot --opt -p database > database.sql
Enter password:

2). 恢复名字为database的库
mysql -uroot -p database < database.sql

这样做的优点是备份与恢复时无需停止服务, 缺点是需要锁定表为只读模式
--opt 模式包括--add-locks

备份数据文件
备份时将数据库停掉, 将数据文件copy 到指定目录, 开启数据库服务.
恢复时将数据库停掉, 将数据文件copy到数据库的数据目录下, 开启数据库服务.


使用mysqlhotcopy


自动化备份脚本
每天凌晨备份完整的数据文件到rsync 服务器

# cd /usr/local/src/
# vi mysqlbackup.sh
#!/bin/bash
#author: qipeng.song@gmail.com
#time : 2008/06/03
#purpose: To backup database SMS daily, and trans it to backup server
IPADDRESS=`grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 | awk -F "=" '{
print $2}'`
RSYNCHOST="60.28.xxx.xxx"
RSYNCMODE="mysqlbackup"
RSYNCCMD="/usr/bin/rsync -azu"
MYSQLCMD="mysqldump --opt -ubackup -p123456789"
PASSFILE="/usr/local/src/pass"
RSYNCUSER="user"

#The database to be bakuped
DATABASES="SMS"
BACKUPDIR=/usr/local/sms/data/backup
TIMESTAMP=`date +%y%m%d -d "1 days ago"`

#Start backup
echo Start Backup $DATABASES
sleep 5
cd $BACKUPDIR
$MYSQLCMD $DATABASES > $BACKUPDIR/$IPADDRESS.$DATABASES.$TIMESTAMP
      if [ $? = 0 ]; then
                echo "$IPADDRESS Backup $DATABASES sucess $TIMESTAMP" >> sucess.
log
                echo Backup Sucess Done
      else
                echo "$IPADDRESS Backup $DATABASES failed $TIMESTAMP" | mail -s
"qipeng.song@gmail.com"

      exit 1
      fi

#Backup Database to remote server
echo Start Rsync Database File to Remote Host ....
sleep 5

$RSYNCCMD $IPADDRESS.$DATABASES.$TIMESTAMP $RSYNCUSER\@$RSYNCHOST::$RSYNCMODE --
password-file $PASSFILE
         if [ $? = 0 ]; then
                echo "$IPADDRESS Rsync $DATABASES sucess $TIMESTAMP" >> sucess.l
og
                echo Transfer Database File Has Done ....
      else
                echo "$IPADDRESS Rsync $DATABASES failed $TIMESTAMP" | mail -s "
qipeng.song@gmail.com"

      exit 1
      fi

RPM安装如下

下载MySQL-client-community-5.1.40-0.rhel5.i386.rpm
      MySQL-server-community-5.1.40-0.rhel5.i386.rpm 俩个包

rpm -ivh 这俩个包,

修改空密码/usr/bin/mysqladmin -u root password 123456

**mysql -u root -p 输入密码OK.

忘了mysql的root口令怎么办
# /usr/local/mysql/support-files/mysql.server stop
# mysqld_safe --skip-grant-tables &
# mysqladmin -u user password 'newpassword'
# mysqladmin flush-privileges
页: [1]
查看完整版本: 详细设置MySQL5.1.45免安装版/二进制版