mysql初始安装与使用(转)

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时。
)
启动mysql数据库:bin/mysqld_safe --user=mysql &
用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 

posted @ 2011-06-09 10:58  Lester Programming  Views(5568)  Comments(0Edit  收藏  举报