数据库的安装

在linux中安装mysql

虚拟机配置

       Linux挂载windows分区(网络方式)

              配置vm网络,使得vm linux与本机网络连通。

              Windows分区共享,权限:everyone

              Vi /etc/fstab 文件,加入挂载配置

格式:

//远程主机IP/共享名    挂在点目录    文件类型       用户名,密码   参数

//192.168.238.1/APP     /mnt/usr  smbfs     username=administrator,password=oracle    1 2

挂载

# cd /mnt/

# mkdir usr     //必须创建对应文件夹

# mount /mnt/usr

              此时,/mnt/usr 目录中的文件即是远程主机磁盘系统中的文件

安装前准备 卸载版本

查看以前的mysql 安装,(先卸载以前的,再安装新的)

# rmp –qa | gre mysql //找出已经安装的MySQL,Linux系统默认安装一般是MySQL 4

卸载

# rmp –e [卸载对象]     //依次删除MySQL模块

在卸载mysql(即删除MySql模块)时,会遇到failed dependence,意思是卸载的该模块有其它模块依赖于它,所以,如果存在依赖,则先卸载依赖的对象。

安装

       # rmp -uvh [软件名称] 更新安装              # rmp –ivh [软件名称]  覆盖安装

       两个软件安装包名:

MySQL-client-community- 5.0.45 -0.rhel4.i386.rpm

       MySQL-server-community- 5.0.45 -0.rhel4.i386.rpm

       安装新版本

    >rpm -Uvh MySQL-server-community- 5.0.37 -0.sles9.i586.rpm

    >rpm -Uvh MySQL-client-community- 5.0.37 -0.sles9.i586.rpm

创建数据库 / MySQL授权表:[D1] 

shell> mysql_install_db --user=mysql

初始化/启动数据库

Shell> /usr/bin/mysqld_safe –user=mysql

登入数据库 sql 命令行操作

Shell> mysql –h host –u user –p // -h 主机名–u 用户名–p 有密码方式

退出数据库 mysql>quit

显示/测试数据库

mysql> show variables;  //显示变量

mysql> show databases;       //显示当前的数据库

mysql> use test             //使用 test 数据库

mysql> show tables;      //显示当前数据库中的表

mysql> describe [tablename] //表结构描述

mysql> select version(),current_date;   //显示版本和创建日期

mysql> select host,user,password from user;     

//从 user 系统数据库中显示主机名,用户名,密码

 

数据库基本的操作命令

Shell> mysqladmin 启动数据库

Shell> mysqladmin shudown –u root –p       //停止数据库服务

Shell> create database [databasename]  //创建新数据库 [数据库名]

 

数据库用户管理

mysql> select host,user,password from user;     

//从 user 系统数据库中显示主机名,用户名,密码

新建用户

Mysql> Use mysql     //确定使用数据库

Mysql> select user from user;   //显示user表中的用户信息

Mysql> create user hr identified by[D2]   //创建一个新的用户

Mysql> exit        //退出

Mysql> mysql –u hr –p     //用新创建的用户登入

Enter password: 

Mysql> show table;    //显示表

Mysql> use databases; //确定使用数据库

Mysql> show databases     //显示数据库

Mysql> quit

删除用户

Shell> mysqladmin –u root drop mysql //删除用户 mysql

[补]

个人理解,其实shell> sqladmin –u root SQL –p 就是在shell环境下执行SQL语句

密码管理 (此处修改的只是mysql密码,并非是unix系统密码)

       Unix中使用password

       Shell> /usr/bin/mysqladmin –u root password ‘new-password’

       //修改 root 用户自身密码

       Shell> /usr/bin/mysqladmin –u root –h test110 password ‘new-password’

//修改主机名为test110的mysql登录密码为 new-password


[补]

/usr/bin/mysqladmin: connect to server at ‘localhost’ failed

Error: ‘Access denied fot user ‘root’@’localhost’ (using password: NO)’

的意思是需要通过密码方式才能执行操作


       在sql中使用密码

       方法一:[set 语句]

              Shell> mysql –u root –p //用root 身份通过密码登入mysql

              Mysql> set password for ‘[username]’@’localhost’ = password(‘newpwd’);

              Mysql> set password for ‘[username]’@’host_name’ = password(‘newpwd’);

              Mysql> select host,user from mysql.user;    //查看用户

              Mysql> quit    //退出 sql 环境

              [补]:个人理解,在上面使用的password()是一个函数,把字符串转化为密码的函数。

       方法二:[update 语句]

              Shell> mysql –u root –p //用root 登陆

              Mysql> update mysql.user set password = password(‘newpwd’) where user =’username’;

              Mysql> flush privileges;[D3]         //刷新mysql的系统权限相关表

 

[补]

希望环境变量设置MySQL帐户名,可使用

Shell> export USER=your_name

[补]

管理员创建出来的用户不能删除,修改管理员的原因:

所有的系统数据库保存在默认的一个数据库(mysql)中,当以非管理员身份登陆系统时,是不可以对这个数据库进行操作的。(根本看不到这个数据库)

Mysql中存在的表

Mysql中的user表的表项

 

数据库管理操作

MYSQL服务器和服务器启动脚本:

o        mysqld是MySQL服务器

o        mysqld_safemysql.servermysqld_multi是服务器启动脚本

o        mysql_install_db初始化数据目录和初始数据库

访问服务器的客户程序:

o        mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。

o        mysqladmin是用于管理功能的客户程序。

o        mysqlcheck执行表维护操作。

o        mysqldumpmysqlhotcopy负责数据库备份。

o        mysqlimport导入数据文件。 

o        mysqlshow显示信息数据库和表的相关信息。

独立于服务器操作的工具程序:

o        myisamchk执行表维护操作。

o        myisampack产生压缩、只读的表。

o        mysqlbinlog是处理二进制日志文件的实用工具。

o        perror显示错误代码的含义。

 

数据库的远程网络操作 [尚未整理]

创建远程用户:

  GRANT ALL ON *.* TO app@'%' identified by 'oracle';

  GRANT ALL ON *.* TO hr@'%' identified by ‘hr';

  GRANT ALL PRIVILEGES ON mysql.* TO root@172.1.1.1 identified by 'oracle';

安装JDBC 驱动 mysql-connector-java- 5.0.4 -bin.jar

  Class name:   com.mysql.jdbc.Driver

  URL :  jdbc:mysql://[host][,failoverhost...][:port]/[database][?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

  如: jdbc:mysql://172.1.1.110:3306/test

 

MySQL:无法远程登入MySQL Server

 

尝试用MySQL Adminstrator GUI Tool登入MySQL Server,Server却回复错误讯息:Host '60-248-32-13.HINET-IP.hinet.net' is not allowed to connect to this

MySQL server

 

这个是因为权限的问题,处理方式如下:

shell>mysql --user=root -p

输入密码

mysql>use mysql

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* TO [username]@[ipadd] identified by '[password]';

 

[username]:远程登入的使用者代码

[db_name]:表示欲开放给使用者的数据库称

[password]:远程登入的使用者密码

[ipadd]:IP地址或者IP反查后的DNS Name,此例的内容需填入'60-248-32-13.HINET-IP.hinet.net' ,包函上引号(')

 

数据库的复制

采用 dbVisualizer将Oracle数据库中的hr方案复制入MySQL

采用 dbVisualizer导出表结构

varchar2 -> varchar

NUMBER -> NUMERIC

执行表结构创建语句(CREATE)

从Oracle数据库导出表数据

以SQL方式导出

导入到新数据库中

执行导出的SQL(INSERT)

必须按约束条件的次序导出导入

 

步骤:

安装Oracle Migration Workbench

解压缩

安装plugin

将plugin复制到 /owmb/plugins

安装JDBC驱动

将mysql-connector-java- 5.0.4 -bin.jar复制到/owmb/drivers

Oracle数据库上建用户 owmb/owmb

启动owmb

 

 

SQL语句的练习

主要是建表,丢表,查找,插入,删除,更新操作。自己练习。<笔录略>


创建表:

Eg:

Mysql> create table department( id numeric(7) primary key, name varchar(25), location_id varchar(50) );

主键约束…option number(n) constraint table_name PRIMARY KEY,…

非空约束…option number(n) constraint table_name NOT NULL,…

[补]:

Mysql语法与标准SQL语法还有不同之处[D4] 

[补]:

建表后增加主键,和撤销主键的方法

/*撤消主键*/
alter table [Student] drop primary key (S_id)
/*增加主键*/
alter table [Student] add primary key (S_id)

Mysql不兼容标准SQL,命令改为:

alter table [Student] drop primary key                 //撤销主键
alter table [Student] add primary key (S_id)         //添加主键

 

修改原表的设计:

修改表项的数据类型及长度:

Mysql> Alter table dep modify (name varchar2(50));

//修改 dep 表中name 表项以允许接受50位长度的数据

Mysql> describe dep;     //显示表结构[确认修改成功]

 

Commit   //提交落实操作,意味着不能再rollback。

 

复制表

Mysql> create table dep2 as select * from dep;

//取出来的都是数据,所以不能复制附加的约束内容

 

 

之后要进入存储过程等深度点的SQL培训,加油~

 





 [D1]授权的含义及作用?

数据库中存在着用户权限的授权表,使用mysql_install_db 是同步(创建/更新)授权表,使得刚刚对用户的管理操作可以马上起左右。如果不使用这句,那么就要重新启动mysqld服务,或者重新启动计算机才能让刚才的操作结果具备权限。

 



 [D2]词面意思为:以…鉴别。在这里就是将其后的设为密码。



 [D3]执行一个mysql> FLUSH PRIVILEGES语句或运行

shell> mysqladmin flush-privileges

告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。



 [D4]现在遇到的以下情况:

1、  number(n)不可用,要改用numeric(n);

2、  varcharN(M)格式不可用,只能用varchar(M)格式

3、  id numeric(7) constraint my.dep primary key,要改用:id numeric(7) primary key.

4、  以后观察补充