mysql数据库的安装版本为:mysql-standard-5.0.27-linux-i686.tar.gzlinux环境为Red Hat Enterprise Linux 6
首先取得root权限并将mysql的tar文件复制到/usr/local目录下。具体操作如下:
cd /usr/local
su
cp /tmp/mysql-standard-5.0.27-linux-i686.tar.gz /usr/local
tar -zxvf mysql-standard-5.0.27-linux-i686.tar.gz
解压后,在/usr/local目录下有一个mysql-standard-5.0.27-linux-i686目录,我们将该目录做个软链接。
ln -s mysql-standard-5.0.27-linux-i686 mysql
以后即可通过/usr/local/mysql进入到/usr/local/mysql-standard-5.0.27-linux-i686目录
为方便起见,接下来按部操作:
1)建立mysql用户
groupadd mysql
useradd -g mysql mysql
scripts/mysql_install_db --user=mysql
chowm -R root . 此命令为修改文件的所有者
chown -R mysql data修改data文件的所有者
chgrp -R mysql .改变用户组
执行上述操作时需要注意commond后"."前是有空格的。
启动mysql
在启动mysql前需要将安装包文件中mysql.server的启动脚本复制到/etc/rc.d/init.d目录里面
cd /etc/rc.d/init.d
cp /usr/local/mysql/support-files/mysql.server mysql
注:此时的mysql是先前用此ln -s mysql-standard-5.0.27-linux-i686 mysql语句建立的软链接。
最后运行chkconfig把mysql添加到系统的启动服务组里面:
/sbin/chkconfig --del mysql
/sbin/chkconfig --add mysql
此时执行:/etc/rc.d/init.d/mysql start
执行后将会看到:
Starting MySQL SUCCESS!
执行 mysql或者mysql -u root -p
输入密码出现
mysql>
然后在mysql>后执行相应的mysql命令即可。
在进行具体操作时遇到一些问题,现做具体的记录:
创建数据库:
create database TestData;
若创建错误或需销毁数据库执行:
drop database TestData;
有了数据库还需要有表:
在建表之前需要明白在哪个数据库中建的表,执行:
use TestData;
create table UserInfoo(UserId int,UserNamm varchar(20));
之后发现表名错误,执行
alter table UserInfoo rename to UserInfo;
随后又发现字段错误,于是执行:
alter table UserInfo change UserNamm UserName varchar(25);
将字段名UserNmm修改为UserName,并且其字段属性为varcahr(25);在这里也可以修改字段属性。
查看UserInfo表具体信息,执行:
describe UserInfo;
mysql> describe UserInfo;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| UserId | int(11) | YES | | NULL | |
| UserName | varchar(25) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
发现UserId应该是主键并且是自增的。于是执行:
alter table UserInfo change UserId UserId int primary key not null auto_increment;
然后再查看表 describe UserInfo;
mysql> describe UserInfo;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| UserId | int(11) | NO | PRI | NULL | auto_increment |
| UserName | varchar(25) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
表的建立已基本完成,接下来往表中插入数据:
insert into UserInfo value('2','cs001');
突然想到UserId是自增的,它的值不用写。于是删除插入的数据:
delete from UserInfo;
表中数据全部清空,当时以为字段也没了。于是重新添加字段:
alter table UserInfo add UserId int not null primary key auto_increment;
提示UserId重复。索性添加Age字段:
alter table UserInfo add UserAge int;
向表中添加数据:
insert into UserInfo value('','Cs001','20');
insert into UserInfo value('','Cs002','21');
insert into UserInfo value('','Cs003','22');
mysql> select * from UserInfo;
+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 3 | Cs001 | 20 |
| 4 | Cs002 | 21 |
| 5 | Cs003 | 22 |
+--------+----------+---------+
3 rows in set (0.00 sec)
至此具体操作完成。
在此期间又学习到了一下命令:
更改特定字段值:
update UserInfo set UserName='cs004' where UserId='5';
更改特定字段中的所有带有一定特性的值,例如如下则将UserName中的所有s替换为c:
mysql> update UserInfo set UserName=replace(UserName,'s','c');
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> select * from UserInfo;
+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 3 | Cc001 | 20 |
| 4 | Cc002 | 21 |
| 5 | cc004 | 22 |
+--------+----------+---------+
3 rows in set (0.00 sec)
2012/12/20
今天在学习时学习到新的内容:
数据库的备份和恢复是一个非常重要的环节,在此做详细说明:
在备份数据库时需要注意,执行数据库的备份命令是:
mysqldump -u 拥有数据库的用户名 -p 数据库名>database.bak
此命令并不是在数据库的命令行里面输入,而是在/usr/bin或者/bin目录里面,我在输入时提示:
mysqldump执行时Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
很明显我没有备份数据库的权限,解决办法是先进入数据库命令行,执行:
mysql> use mysql;
Database changed
mysql> update user set password=password('new password') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
随后再进入/usr/bin目录或者/bin目录执行:
mysqldump -u 拥有数据库的用户名 -p 数据库名>database.bak
后面的database.bak也可更改为相应的目录文件。
之后若数据库丢失,首先需要在mysql里面建立一个空数据库,然后进入/usr/bin或者/bin目录,执行:
mysql -u root -p 数据库名<database.bak
即可恢复误删除的数据库。