数据库的安装
在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_safe、mysql.server和mysqld_multi是服务器启动脚本
o mysql_install_db初始化数据目录和初始数据库
访问服务器的客户程序:
o mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。
o mysqladmin是用于管理功能的客户程序。
o mysqlcheck执行表维护操作。
o mysqldump和mysqlhotcopy负责数据库备份。
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、 以后观察补充