在linux中查看是否原来就有MySQL
查看该操作系统中是否已经安装过MySQL数据库:
[root@hadoop02 ~]# rpm -qa | grep mysql
如果已经安装,需要卸载:
#普通卸载:
[root@hadoop02 ~]# rpm -e mysql
#强力卸载:
[root@hadoop02 ~]# rpm -e --nodeps mysql
注意:如果使用普通删除时,提示有依赖的其他文件,则可以通过强力卸载来删除!
MySQL安装
①查看可下载的MySQL的版本:
[root@hadoop02 ~]# yum list | grep mysql
②进行安装数据库:
[root@hadoop02 ~]# yum install -y mysql-server mysql mysql-devl
③安装完成后,查看安装后数据库的版本:
[root@hadoop02 ~]# rpm -qi mysql-server
数据库初始化
①启动数据库:
1、[root@hadoop02 ~]# service mysqld start
2、[root@hadoop02 ~]# sudo /etc/init.d/mysqld start
重启:
[root@hadoop02 ~]# service mysqld restart
如果和下图一样,代表启动成功:
image在使用MySQL数据库时,必须先启动mysql的服务,因此最好是设置为开机自启:
[root@hadoop02 ~]# chkconfig mysqld on
然后,查看设置的是否成功:
[root@hadoop02 ~]# chkconfig --list | grep mysql
出现以下图片,说明设置成功:
image设置root账号的密码(在默认情况下,安装好后root是没有密码的。)
①进入mysql数据库中:
[root@hadoop02 ~]# mysql -uroot
②为了安全起见,给root设置一个密码:
[root@hadoop02 ~]# mysqladmin -u root password 'root'
如果,需要重置密码:
[root@hadoop02 ~]# mysqladmin -u root -p password 'root'
③,设置好以后,可以通过以下命令进入数据库:
[root@hadoop02 ~]# mysql -u root -p
数据库编码成UTF-8
①在/etc/my.cnf文件中设置数据为utf8
[root@hadoop02 ~]# vi /etc/my.cnf
②在[client]下面添加:
[client]
default-character-set=utf8
③在[mysqld]下面添加:
character-set-server=utf8
image
④查看数据库字符集编码,进入mysql数据库中,再输入以下代码:
mysql> show variables like '%char%';
出现以下界面,说明设置成功:
imageMySQL的主要配置文件
1、主配置文件:/etc/my.cnf
2/数据库文件存放位置:/var/lib/mysql
3/日志存放位置:/var/log/mysqld.log
基本命令(在已经进入数据库中的命令,切忌拉掉分号
)
1、mysql> show databases;//查看系统已经存在的数据库
2、mysql> use 数据库的名字;//选择需要使用的数据库
3、mysql> drop database 数据库名字;//删除选定的数据库
4、mysql> create database 数据库名字;//创建一个新的数据库
5、mysql>exit;//退出数据库的连接
6、mysql> show tables;//查看当前数据库下的表
7、其他基本的增删改查使用标准的SQL语句即可
开放远程的登陆权限(在已经进入数据库中的命令,切忌拉掉分号
)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
mysql> FLUSH PRIVILEGES;
防火墙的开启与关闭:
(1) 用root用户登录后,执行查看防火墙状态。
[root@hadoop02 /]# service iptables status
(2) 用[root@hadoop02 /]# service iptables stop关闭防火墙,这个是临时关闭防火墙。
[root@hadoop02 /]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
(3) 如果要永久关闭防火墙用。
[root@hadoop02 /]# chkconfig iptables off
关闭,这种需要重启才能生效。
练习
创建scott database数据库代码:
create table dept(
-- 部门编号
deptno int unsigned auto_increment primary key,
-- 部门名称
dname varchar(15) ,
-- 部门所在位置
loc varchar(50)
)engine = InnoDB;
create table emp(
-- 雇员编号
empno int unsigned auto_increment primary key,
-- 雇员姓名
ename varchar(15) ,
-- 雇员职位
job varchar(10) ,
-- 雇员对应的领导的编号
mgr int unsigned ,
-- 雇员的雇佣日期
hiredate date ,
-- 雇员的基本工资
sal decimal(7,2) ,
-- 奖金
comm decimal(7,2) ,
-- 所在部门
deptno int unsigned ,
foreign key(deptno) references dept(deptno)
)engine = innodb;
create table salgrade(
-- 工资等级
grade int unsigned ,
-- 此等级的最低工资
losal int unsigned ,
-- 此等级的最高工资
hisal int unsigned
)engine=innodb;
create table bonus(
-- 雇员姓名
ename varchar(10),
-- 雇员职位
job varchar(9),
-- 雇员工资
sal decimal(7,2),
-- 雇员资金
comm decimal(7,2)
)engine=innodb;
在dept表中插入一些数据:
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);
INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30);
INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30);
INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'1981-4-2',2975,NULL,20);
INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30);
INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'1981-5-1',2850,NULL,30);
INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'1981-6-9',2450,NULL,10);
INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'87-7-13',3000,NULL,20);
INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'1981-9-8',1500,0,30);
INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'87-7-13',1100,NULL,20);
INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'1981-12-3',950,NULL,30);
INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'1981-12-3',3000,NULL,20);
INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'1982-1-23',1300,NULL,10);
INSERT INTO salgrade VALUES (1,700,1200);
INSERT INTO salgrade VALUES (2,1201,1400);
INSERT INTO salgrade VALUES (3,1401,2000);
INSERT INTO salgrade VALUES (4,2001,3000);
INSERT INTO salgrade VALUES (5,3001,9999);
网友评论