Centos安装Mysql数据库

查看我们的操作系统上是否已经安装了mysql数据库

[root@centos~]# rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库

有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉

[root@centos~]# rpm -e mysql  // 普通删除模式

[root@centos~]# rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

通过yum来进行mysql的安装

[root@centos~]# yum list | grep mysql

[root@centos~]# yum install -y mysql-server mysql mysql-deve

查看刚安装好的mysql-server的版本

[root@centos~]# rpm -qi mysql-server

注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置

[root@centos~]# service mysqld start

 

初始启动mysql之后再登录就会很快了

[root@centos~]# service mysqld restart

 

查看mysql服务是不是开机自动启动

[root@centos~]# chkconfig --list | grep mysqld

mysqld             0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭

通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了

[root@centos~]# chkconfig mysqld on

[root@centos~]# chkconfig --list | grep mysql

mysqld             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :

[root@centos~]# /usr/bin/mysqladmin -u root password 'new-password'  // 为root账号设置密码

注意:这个root账号是mysql的root账号,非Linux的root账号)

[root@centos~]# mysqladmin -u root password 'root'  // 通过该命令给root账号设置密码为 root

[root@centos ~]# mysql -u root -p

Mysql数据库的主要配置文件

1./etc/my.cnf 这是mysql的主配置文件

[root@centosetc]# cat my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

/var/lib/mysql   mysql数据库的数据库文件存放位置

我们的mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下

[root@centos~]# cd /var/lib/mysql/

[root@centos mysql]# ls -l

总用量 20488

-rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1

-rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0

-rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1

drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql  // 这两个是mysql数据库安装时默认的两个数据库文件

srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock

drwx------. 2 mysql mysql     4096 4月   6 21:59 test  // 这两个是mysql数据库安装时默认的两个数据库文件

创建一个我们自己的数据库看一下:

mysql> create database ceshi001;

Query OK, 1 row affected (0.00 sec)

[root@centos mysql]# ls -l

总用量 20492

-rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1

-rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0

-rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1

drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql

srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock

drwx------. 2 mysql mysql     4096 4月   6 21:59 test

drwx------. 2 mysql mysql     4096 4月   6 22:15 ceshi001  // 这个就是我们刚自己创建的centos数据库

[root@centos mysql]# cd xiaoluo/

[root@centos ceshi001]# ls

db.opt

/var/log mysql数据库的日志输出存放位置

我们的mysql数据库的一些日志输出存放位置都是在/var/log这个目录下

[root@centos ceshi001]# cd

[root@centos ~]# cd /var/log

[root@centos log]# ls

amanda                cron           maillog-20130331   spice-vdagent.log

anaconda.ifcfg.log    cron-20130331  mcelog             spooler

anaconda.log          cups           messages           spooler-20130331

anaconda.program.log  dirsrv         messages-20130331  sssd

anaconda.storage.log  dmesg          mysqld.log         tallylog

anaconda.syslog       dmesg.old      ntpstats           tomcat6

anaconda.xlog         dracut.log     piranha            wpa_supplicant.log

anaconda.yum.log      gdm            pm-powersave.log   wtmp

audit                 httpd          ppp                Xorg.0.log

boot.log              ibacm.log      prelink            Xorg.0.log.old

btmp                  lastlog        sa                 Xorg.1.log

btmp-20130401         libvirt        samba              Xorg.2.log

cluster               luci           secure             Xorg.9.log

ConsoleKit            maillog        secure-20130331    yum.log

查看网络端口号为3306的mysql数据库是否正在工作:

[root@centos mysql]#netstat -anp|more

使用Navicat连接Linux

这样就完成了在Centos上安装mysql数据库的操作,之后打开本地window->cmd,ping一下linux地址看看是否能连上

 

查看虚拟机IP为192.168.38.128

cmd窗口ping 192.168.38.128,出现如下界面说明是可以的  

默认安装linux是只开通了22端口,不能通过3306端口让外界访问,首先要在mysql>中打开权限,在将iptables的3306端口打开

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION; FLUSH PRIVILEGES;  // 在mysql控制台执行命令中的 ‘root’@’%’ 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;’MyPassword’是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限。

然后直接关闭防火墙也可以.

mysql> flush privileges;

检查虚拟机mysql的端口号是否对外开通

比如我们能用xshell等远程工具连接虚拟机上的linux,是因为开放了22端口,查看mysql的端口,在mysql命令行模式下执行以下命令就可以查看,查到的结果是3306。

     mysql> show variables like '%port%';

  

  查看虚拟机的3306端口是否开放

  cmd下执行telnet 192.168.38.128 3306

  无法执行,别方,这是因为Windows telnet默认是关闭的

  

  按照红框提示开启telnet

  

  重新打开cmd窗口执行命令,结果是无法连接,这是因为虚拟机上的3306并没有对外开放,可以用22的试下效果就知道了

  

  开通虚拟机的3306端口  

  查看虚拟机防火墙的状态

  [root@centos~]# service iptables status

  可以看到目前只有22端口对外开放

  

  编辑防火墙文件打开3306端口

  [root@centos~]# vim /etc/sysconfig/iptables

  模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口  

  

  重启防火墙

  [root@centos~]# service iptables restart  // 可以看到3306已经开放

  

打开Navicat,创建连接到虚拟机:

报错:1045 Access denied for user 'centos-test@'%' (using password: YES)

  是因为在mysql>  GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "密码"; 设置的是所有linux中的root账户 ,而非centos-test账户

  mysql> flush privileges;

解决办法:

  GRANT ALL PRIVILEGES ON *.* TO centos-test@"%" IDENTIFIED BY "密码"; // 通过该命令允许centos-test的所有账户通过密码来访问该数据库

  mysql> flush privileges;

如果想通过cmd来访问mysql

要在window下安装mysql操作台,然后远程连接虚拟机数据库访问。

  端口都开启了,但还是连不上,看提示说明至少已经关联到mysql,不允许是因为权限不够

 

  我也不用root账号了,这里重新创建一个账号并赋予所有权限,之后让权限配置生效,在虚拟机上的mysql命令行模式下执行以下命令

    mysql> create user 'panda'@'%' identified by '123456';

    mysql> grant all on *.* to 'panda'@'%';

    mysql> flush privileges;

  然后重新连接DB

附加题:

将mysql目录下bin目录中的mysql.exe放到C:\WINDOWS下,可以执行以下命令

连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 
断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
修改密码:mysqladmin -u用户名 -p旧密码 password 新密码
删除授权: revoke select,insert,update,delete om *.* from test2@localhost; 显示数据库:show databases;
显示数据表:show tables;
显示表结构:describe 表名; 创建库:create database 库名;
删除库:drop database 库名;
使用库:use 库名; 创建表:create table 表名 (字段设定列表);
删除表:drop table 表名;
修改表:alter table t1 rename t2
查询表:select * from 表名;
清空表:delete from 表名;
备份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql
恢复表: mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql(操作前先把原来表删除) 增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
删除列:ALTER TABLE t2 DROP COLUMN c; 备份数据库:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename > database.sql

通过window(Navicat)访问linux中的mysql数据库的更多相关文章

  1. window下利用navicat访问Linux下的mariadb数据库

    1.再Linux上成功安装mariadb数据库后,不管是在dos(敲命令mysql -h192.168.136.8 -uroot -p)下或者是navicat(创建连接)下连接mariadb数据库,会 ...

  2. Linux 命令之 Navicat 连接 Linux 下的Mysql数据库

    2016年12月7日18:44:06 -====------------------------  GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDEN ...

  3. LINUX中备份mysql数据库

    1.在LINUX中创建备份目录 如:/home/backup   2.把sh脚本放到备份目录下   脚本如下 https://wws.lanzous.com/i1oCxlccapa密码:dter   ...

  4. linux中安装mysql数据库

    遇到ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' ...

  5. linux中使用mysql数据库

    在安装完数据库后,如果没有设置root的mysql密码,在命令行输入mysql即可进入数据库 show databases;(有分号):查看当前存在的数据库 create database 名字:创建 ...

  6. linux 中,mysql数据库备份操作

    1.新建一个sh脚本(可以先建一个txt文本,然后改为sh文件). 代码如下: #!/bin/bash #设置mysql备份目录 folder=/**/** cd $folder day=`date ...

  7. linux 中对 mysql 数据库的基本命令

    显示数据库列表 show databases; 显示库中的数据表 use mysql: // 打开库 show tables; 建库 create database 库名; 建库是设置好字符编码: c ...

  8. linux中备份mysql数据库的一个shell脚本

    #!/bin/bash #FileName:select_into_bak.sh #Desc:Use select into outfile to backup db or tables #Creat ...

  9. 在 linux 中连接 mysql 数据库

    命令格式 mysql -h主机地址 -u用户名 -p用户密码 登录本机 mysql mysql -u用户名 -p用户密码 实例 TD - X1数据库:/opt/lampp/bin/mysql -u r ...

随机推荐

  1. varints

    Protocol Buffer技术详解(数据编码) - Stephen_Liu - 博客园 https://www.cnblogs.com/stephen-liu74/archive/2013/01/ ...

  2. User Login Client Identification

    w用HTTP认证首部注册用户名. HTTP The Definitive Guide Rather than passively trying to guess the identity of a u ...

  3. lsof,fuser,xargs,print0,cut,paste,cat,tac,rev,exec,{},双引号,单引号,‘(字符串中执行命令)

    cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件. 粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同.paste将按行将不同文件行 ...

  4. Bad Hair Day---poj3250(栈的运用)

    题目链接:http://poj.org/problem?id=3250 题意: n个牛排成一列向右看,牛i能看到牛j的头顶,当且仅当牛j在牛i的右边并且牛i与牛j之间的所有牛均比牛i矮. 设牛i能看到 ...

  5. java.util.Calendar

    package day14; import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; import java.util.Cal ...

  6. 脚本其实很简单-windows配置核查程序(1)

    先上成品图 需求描述 我们电脑上都安装各种过监控软件,比如360.鲁大师等等...其中有一个功能就是性能监控,在安全行业里面通常叫做"配置核查",目的就是将主机的各种性能指标展示, ...

  7. SDUT3145:Integer division 1(换零钱背包)

    题目:传送门 题目描述 整数划分是一个非常经典的数学问题. 所谓整数划分,是指把一个正整数n写成为n=m1+m2+...+mi的形式,其中mi为正整数,并且1<=mi<=n,此时,{m1, ...

  8. css 自定义滚动条

    我遇到的场景: 对于iframe窗口,自带滚动条是整个窗口的大小.有时需要顶部或底部固定,则滚动条不应该触碰到顶部或底部. 那么首先打开iframe时应该去掉滚动条 scrolling="n ...

  9. [golang note] 流程控制

    流程控制 • 流程控制语句作用 ▪ 选择:根据条件跳转到不同的执行序列. ▪ 循环:根据条件反复执行某个序列. ▪ 跳转:据条件返回到某执行序列. • 流程控制语句类型 ▪ 条件语句:关键字为if.e ...

  10. SQL Server创建事务——锁

    参考地址:http://www.cnblogs.com/knowledgesea/p/3714417.html 事务定义: 事务是作为单个逻辑单元执行的一系列操作,它是一个不可分割的工作逻辑单元.它包 ...