mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
1 下载mysql-standard-5.0.27-linux-i686-glibc23.tar.gz 包
2 解压到安装目录: tar -zxvf
/edass/db/mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
3 将 mysql-standard-5.0.27-linux-i686-glibc23链接到mysql :
ln –s mysql-standard-5.0.27-linux-i686-glibc23 mysql
4 为mysql建立群和用户(linux用户)
shell> groupadd mysql
shell> useradd -g mysql mysql
5 初始化数据库:scripts/mysql_install_db --user=mysql
(mysql_install_db
以缺省权限创建MySQL授权表。这通常仅被执行一次。就是在系统上第一次安装MySQL时。
)
6 启动mysql数据库:bin/mysqld_safe --user=mysql
&
7 用root进入mysql命令行模式:./mysql -u root -p
// 8 为root分配密码:mysql>grant all
privilages on *.* to
[email=admin@localhost]root@localhost[/email]
9授予 root用户可以从任何主机发起访问:mysql>grant all privilages on *.*
to
[email=admin@]root@"%[/email]
" identified by 'password' with grant option;("%"是通配符,授予 admin
用户可以从任何主机发起访问,password 是为 admin 用户设置的密码。一般来讲,Root 应只用于数据库本机上登录
MySQL,我们可以增加一个拥有超级管理权限的用户 'admin' 来实现远程的维护。
)
Mysql启动命令:./bin/mysqld_safe –-user=mysql &
Mysql关闭命令:./bin/mysqladmin –uroot –phkgt123 shutdown
Mysql数据脚本导出(整个数据库):./bin/mysqldump –-opt–uroot –phkgt123 test >
/edass/db/dgflog.sql
Mysql数据脚本导入(整个数据库):./bin/mysql –uroot –phkgt123 dgflog
Mysql的端口修改 :vi etc/my.cnf port=3300 #修改成你自己想要的端口
设置自动启动/etc/rc.d/rc.local 添加 cd /edass/auditdb/mysql;
bin/mysqld_safe --socket=/tmp/auditdb.sock --port=4406
--user=mysql &
修改mysql密码:
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行SET PASSWORD FOR root=PASSWORD("root");
10 mysql命令行常用命令:
第一招、mysql服务的启动和停止
net stop mysql
net start mysql
第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p,
回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP
第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录,
并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost
Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost
identified by "";
第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。
mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;
第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname >
mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;
linux下的计划任务:
cron命令:循环执行某一命令。at命令只能执行一次,虽然都是计划任务的命令,这是这两个命令的区别。
用户cron:用户自己加的
组 cron:系统默认就有的
#ls /etc/crontab //显示crontab命令路径
#cat /etc/crontab //查看系统crontab
* * * * * 用户名 可执行命令
下面是每个位置的表示意义和取值范围
名称 * * * * * 用户名 可执行命令
表示 分钟 小时 日期 月份 星期
取值范围 0-59 0-23 1-31 1-12 0-6
* * * * * //代表每分钟
1 * * * * //代表每小时第1分钟
02 12 * * * //代表每天12点第2分钟(每天12:02)
0-59/2 * * * * //代表每2分钟执行一次任务
#which 命令名称:查看命令所在目录路径。
#which date //查看date命令所在目录路径
/bin/date
#crontab -e //编辑crontab命令,-e(edit)代表编辑
* * * * * /bin/date >>/root/66.txt
//每分钟向/root/66.txt写入一次当前系统时间
#crontab -l //显示用户计划任务
#crontab -r //删除用户计划任务
注意:#crontab -r命令,在哪个用户下,删除的就是哪个用户的计划任务,还需要注意的是该命令是删除
所有用户的所有计划任务。还有普通用户不能删除root的计划任务的权限。
普通用户进行crontab命令计划任务操作
例:#su - text //切换到普通用户text
$crontab -e //在text普通用户中进行crontab命令计划任务编辑
* * * * * /bin/date >>/home/text/33.txt
//每分钟向/home/text/33.txt写入一次当前系统时间
cat /home/text/33.txt //显示/home/text/33.txt文件内容
#crontab -u 用户名 -e //在root用户中给普通用户加计划任务编辑操作
#which crontab //查看crontab命令位置
说明:which命令是查看命令所在位置,which会在$PATH里找,在普通用户里不好用。
ll /usr/bin/crontab //查看crontab命令权限
cat /etc/crontab //显示/etc/crontab文件内容
小例子
#cd /home/aaa //进入普通用户aaa家(home)目录里
#vi 1.txt //建立1.txt文件
/sbin/init 6 //对1.txt文件进行操作,写入/sbin/init 6(重启操作),然后wq(保存退出)
#chmod 755 1.txt //把1.txt文件权限改成可执行文件
#run-parts aaa //执行该操作机器将重启(注意:执行该操作只能在/home/aaa目录外执行才有效)
#cd /var/spool/cron //建立的计划任务都存放在/var/spool/cron目录里
#ls //显示可以执行crontab命令的用户
#cat 用户名 //并可以用cat命令显示用户crontab命令的内容
#cat test //显示test用户计划任务内容
应用mysql的定时备份:
可以将这个脚本放进crontab,每天凌晨执行一次,自动备份这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by SearchDatabase
#2005-09
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days
ago').tgz
echo "-------------------------------------------" >>
$LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile
2>&1
echo "[$OldFile]Delete Old File Success!"
>> $LogFile
else
echo "[$OldFile]No Old Backup File!"
>> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is
exists,Can't Backup!" >> $LogFile
else
case $BackupMethod in
mysqldump)
if [ -z $DBPasswd ]
then
mysqldump -u
$DBUser --opt $DBName > $DumpFile
else
mysqldump -u
$DBUser -p$DBPasswd --opt $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile
>> $LogFile 2>&1
echo "[$NewFile]Backup
Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhotcopy -u
$DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhotcopy -u
$DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile
2>&1
fi
tar czvf $NewFile $DumpFile
>> $LogFile 2>&1
echo "[$NewFile]Backup
Success!" >> $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop
>/dev/null 2>&1
tar czvf $NewFile
$DBPath$DBName >> $LogFile 2>&1
/etc/init.d/mysqld start
>/dev/null 2>&1
echo "[$NewFile]Backup
Success!" >> $LogFile
;;
esac
fi