您的位置:首页 > 运维架构 > Linux

Linux系统下安装mysql数据库

2008-12-23 16:47 381 查看
shell> groupadd mysql
shell> useradd -g mysql mysql
tar -zxvf mysql*****tar.gz
cd /usr/local/mysql5.0.22
shell>./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
[root@centos mysql]# bin/mysqld_safe --user=mysql & 回车后会出现
[1] 20100
[root@centos mysql]# Starting mysqld daemon with databases from usrlocalmysqlvar

测试

#netstat -tnl 查看端口, 看到 3306 就是mysql 的默认端口,
显示3306端口表示成功启动了mysql

二 1 登录MySQL
[root@test1 local]# cd mysql/bin
[root@test1 bin]#./mysql -p
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.16-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
出现了“mysql>”提示符,恭喜你,安装成功!
退出mysql
mysql>quit
2 注意
如果出现 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) ----没有启动tomcat
3 修改登录密码
MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。
1)命令
usr/bin/mysqladmin -u root password 'new-password'
格式:mysqladmin -u用户名 -p旧密码 password 新密码
2)例子
例1:给root加个密码123456。
键入以下命令 :
[root@test1 local]# /usr/local/mysql/bin/mysqladmin -u root password 123456
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
3)测试是否修改成功
(3-1)不用密码登录
[root@test1 local]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
显示错误,说明密码已经修改。
(3-2)用修改后的密码登录
[root@test1 bin]# ./mysql -u root -p
Enter password: (输入修改后的密码123456)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.16-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
成功!
这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

注意:如果在启动mysql时出现
[root@localhost bin]# A mysqld process already exists 使用下面的命令
先pkill -9 mysql,然后再重新登陆mysql,就没事了
四 备份与恢复
1、备份
例如:将创建的aaa库备份到文件back_aaa中
[root@test1 root]# cd /home/data/mysql (进入到库目录,本例库已由val/lib/mysql转到/home/data/mysql,见上述第七部分内容)
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa
2、恢复
[root@test bin]#./mysql -u root -p linux(在mysql数据库中需要建立一个新的数据库名称) < /home/sa/newcomment.dump

五 MySQL的常用操作
注意:MySQL中每个命令后都要以分号;结尾。

1、显示数据库
mysql> show databases;
+----------+
| Database |
+----------+
| mysql|
| test |
+----------+
2 rows in set (0.04 sec)
Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。

2、显示数据库中的表
mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro )
Database changed
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv|
| db |
| func|
| host|
| tables_priv |
| user|
+-----------------+
6 rows in set (0.01 sec)

3、显示数据表的结构:
describe 表名;

4、显示表中的记录:
select * from 表名;
例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。
Select * from user;

5、建库:
create database 库名;
例如:创建一个名字位aaa的库
mysql> create databases aaa;

6、建表:
use 库名;
create table 表名 (字段设定列表);
例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段
use aaa;
mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);
可以用describe命令察看刚建立的表结构。
mysql> describe name;
+-------+---------+------+-----+---------+----------------+
| Field | Type| Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id| int(3) | | PRI | NULL| auto_increment |
| xm| char(8) | YES | | NULL||
| xb| char(2) | YES | | NULL||
| csny | date| YES | | NULL||
+-------+---------+------+-----+---------+----------------+

7、增加记录
例如:增加几条相关纪录。
mysql> insert into name values('','张三','男','1971-10-01');
mysql> insert into name values('','白云','女','1972-05-20');
可用select命令来验证结果。
mysql> select * from name;
+----+------+------+------------+
| id | xm  | xb  | csny  |
+----+------+------+------------+
| 1 | 张三 | 男  | 1971-10-01 |
| 2 | 白云 | 女  | 1972-05-20 |
+----+------+------+------------+

8、修改纪录
例如:将张三的出生年月改为1971-01-10
mysql> update name set csny='1971-01-10' where xm='张三';

9、删除纪录
例如:删除张三的纪录。
mysql> delete from name where xm='张三';

10、删库和删表
drop database 库名;
drop table 表名;

九、增加MySQL用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:
mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";
例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。
例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作aaa库。
mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";
用新增的用户如果登录不了MySQL,在登录时用如下命令:
mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)

十 打开导入的数据库,查看数据库中的表,表中有的显示问号 或百分号
到底是不是乱码 还是不清楚 待解决

十一 mysql 数据库更新
注意要更新哪个数据库就必须切换到哪个数据库的目录下 (例如要更新mysql数据库)
1.mysql>show databases;
2.mysql>use mysql;(注意:mysql是要更新的数据库)
3.mysql>source /home/founder/componenttype.sql

十二 使用SHOW CHARACTER SET语句列出数据库中可用的字符集:
mysql>use 数据库名aaaa; 打开的数据库名为aaaa

mysql> SHOW CHARACTER SET;
本文出自 “jglycczh” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: