MySQL的安装与使用总结
时间:2014-06-21 04:08 来源:linux.it.net.cn 作者:IT网
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
(责任编辑:IT)
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 (责任编辑:IT) |