菜鸟的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作

1. MySQL数据库:

在涉及到一些大型的Web系统或者嵌入式软件的开发时,都少不了用数据库来管理数据。在Windows操作系统下,使用过各种各样的数据库,如:sqlServer、Oracle、MySQL等等,我们知道,在Windows系统上的软件安装配置都是界面式,操作明显而简捷。

那么在Linux操作系统上,对于数据库的选用,好像首推的是MySQL,它是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

今天,阅读了《Linux程序设计》的MySQL这一章节,根据自己在虚拟机中安装配置的步骤,记录于此,供于以后的学习回顾。

2. MySQL安装步骤:

2.1 查看自己系统中是否已经存在

因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库:

[[email protected] ~]# rpm -qa | grep mysql

我们使用root账户登录系统,由于我的系统上已经安装MySQL ,所以得到系统中已安装版本信息:

若是未安装过,则会出现没有安装的提示,此时即可跳过步骤2的卸载。

2.2 卸载原有的MySQL

使用下面命令,卸载现有MySQL:

[[email protected] ~]# rpm -e --nodeps mysql

此时,系统中已经不存在了MySQL的安装记录。

2.3 yum方式安装MySQL

通过yum的方式来进行mysql的数据库安装,首先我们可以输入 yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版本:

[[email protected] ~]#yum list | grep mysql

我们可以看到yum服务器上有很多MySQL的可下载版本:

然后,我们通过输入 yum install -y mysql-server mysql mysql-devel 命令将mysql mysql-server mysql-devel都安装

[[email protected] ~]# yum install -y mysql-server mysql mysql-devel

几秒钟时间过后,我们可以看到下面的信息:

当我们看到complete这个赏心悦目的单词时,说明我们已经成功的安装了MySQL数据库。

3. MySQL数据库配置

3.1 MySQL服务设置

在安装完mysql数据库以后,会发现会多出一个mysqld的服务,这个就是咱们的数据库服务,我们通过输入 service mysqld start 命令就可以启动我们的mysql服务。

一般我们将该数据库的服务设置为开机自启动,使用命令chkconfig mysqld on来设置,同时使用命令chkconfig --list | grep mysql来查看结果:

[[email protected] ~]# chkconfig mysqld on
[[email protected] ~]# chkconfig --list | grep mysql
mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:of

3.2 账户密码设置

在我们安装完MySQL数据库后,就默认有一个名称为root的管理员账户,此时,需要手动设置密码:

使用命令mysqladmin -u root password ‘root‘ 

设定密码之后,我们可以通过命令mysql -u root -p来登录数据库:

至此,对于MySQL数据库配置,就可以结束了。

4. MySQL基本操作

4.1 基本配置文件

(1)在/etc/my.cnf内存储了MySQL数据库的主要配置信息,查看:

[[email protected] ~]# cat /etc/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
[[email protected] ~]#

(2)在/var/lib/mysql内存储了数据库文件,查看:

[[email protected] mysql]# cd /var/lib/mysql
[[email protected] mysql]# ls -l
total 20500
-rw-r--r--. 1 root  root     10717 May 13 10:34 create
-rw-rw----. 1 mysql mysql 10485760 May 13 10:27 ibdata1
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile1
drwx------. 2 mysql mysql     4096 May 13 10:27 mysql
srwxrwxrwx. 1 mysql mysql        0 May 13 10:27 mysql.sock
drwx------. 2 mysql mysql     4096 May 13 10:27 test
[[email protected] mysql]#

4.2 数据库基本操作

(1)创建一个数据库

由上面的默认文件可以看出,我们的MySQL数据库中有两个默认database,一个是mysql,另一个是test。

我们创建一个自己的数据库,命令如下:

[[email protected] mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database yr;
Query OK, 1 row affected (0.00 sec)

mysql> exit
Bye
[[email protected] mysql]# 

首先,我们用root账户登录数据库,可以看到mysql> 命令提示符号,执行创建数据库命令create database name; 得到创建成功消息,退出数据库使用命令exit。

现在,我们可以在/var/lib.mysql下面看到已经创建的数据库yr:

[[email protected] mysql]# ls -l
total 20504
-rw-r--r--. 1 root  root     10717 May 13 10:34 create
-rw-rw----. 1 mysql mysql 10485760 May 13 10:27 ibdata1
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile1
drwx------. 2 mysql mysql     4096 May 13 10:27 mysql
srwxrwxrwx. 1 mysql mysql        0 May 13 10:27 mysql.sock
drwx------. 2 mysql mysql     4096 May 13 10:27 test
drwx------. 2 mysql mysql     4096 May 13 14:41 yr
[[email protected] mysql]#

(2)建表并添加数据

下面,再次登录MySQL我们在上面创建的数据库中建表,并添加几条数据:

[[email protected] mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use yr;
Database changed
mysql> create table user(
    -> Id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
    -> Name VARCHAR(50),
    -> age INTEGER);
Query OK, 0 rows affected (0.07 sec)

mysql> 

至此,yr数据库中便创建成功一个user表,有Id 、 Name 、age三个属性,其中Id为主键。

添加并查询数据:

mysql> insert into user(Id , Name , age)values(1,"aa",20);
Query OK, 1 row affected (0.10 sec)

mysql> insert into user(Id , Name , age)values(2,"bb",21);
Query OK, 1 row affected (0.00 sec)
mysql> select Id , Name , age from user;
+----+------+------+
| Id | Name | age  |
+----+------+------+
|  1 | aa   |   20 |
|  2 | bb   |   21 |
+----+------+------+

(3)从数据库表中删除数据

下面我们删除一条Id=1的数据:

mysql> delete from user where Id=1;
Query OK, 1 row affected (0.05 sec)

mysql> select Id , Name , age from user;
+----+------+------+
| Id | Name | age  |
+----+------+------+
|  2 | bb   |   21 |
+----+------+------+
1 row in set (0.00 sec)

mysql> 

(4)删除数据库表和数据库

删除数据库表和数据库使用drop命令:

mysql> drop table user;
Query OK, 0 rows affected (0.02 sec)
mysql> drop database yr;
Query OK, 0 rows affected (0.28 sec)

mysql> exit
Bye
[[email protected] mysql]# ll
total 20500
-rw-r--r--. 1 root  root     10717 May 13 10:34 create
-rw-rw----. 1 mysql mysql 10485760 May 13 10:27 ibdata1
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile1
drwx------. 2 mysql mysql     4096 May 13 10:27 mysql
srwxrwxrwx. 1 mysql mysql        0 May 13 10:27 mysql.sock
drwx------. 2 mysql mysql     4096 May 13 10:27 test
[[email protected] mysql]# 

以上是linux系统有关mysql安装、配置以及使用的全部内容。

时间: 2025-01-14 10:43:41

菜鸟的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作的相关文章

Linux程序设计学习笔记----多线程编程基础概念与基本操作

转载请注明出处,http://blog.csdn.net/suool/article/details/38542543,谢谢. 基本概念 线程和进程的对比 用户空间资源对比 每个进程在创建的时候都申请了新的内存空间以存储代码段\数据段\BSS段\堆\栈空间,并且这些的空间的初始化值是父进程空间的,父子进程在创建后不能互访资源. 而每个新创建的线程则仅仅申请了自己的栈,空间,与同进程的其他线程共享该进程的其他数据空间包括代码段\数据段\BSS段\堆以及打开的库,mmap映射的文件与共享的空间,使得

Linux(Ubuntu) Mysql的安装配置例子以及常用命令

1.安装配置例子 有空再写 2.注意事项 (1)启动mysql 在/etc/mysql 目录下 service mysql start  新版本是(service mysqld start  ) (2)暂停 mysql service mysql stop 新版本是(service mysqld stop ) (3)重启 mysql service mysql restart新版本是(service mysqld restart) (4)客户端连不上linux的mysql数据库 解决:修改一个文

MySQL数据库安装配置

1,下载MySQL 打开MySQL的官网www.mysql.com,发现有一个DOWNLOADS 点击它,进入到MySQL的下载页面,在页面的底部有一个MySQL Community Edition, 并且下面有一个蓝色的链接 点击这个蓝色的链接,进入到社区版本,也就是免费版本的下载页面 ,MySQL Community Downloads字样下面有一个  MySQL Community Server (GPL), 点击它,或点击下面download, 这才真正进入到MySQL 的下载页面,向下

windows 服务器MYSQL 数据库安装配置

一.到官网下载MYSQL 打开官网地址:www.mysql.com, 选择 DOWNLOADS,进入到MySQL的下载页面,在页面的底部有一个MySQL Community Edition, 并且下面有一个蓝色的链接 点击进入到下载页面: 点击进入,选择需要下载的版本进行下载,页面如下: 二.MYSQL 配置 下载完成后,它是一个zip文件,把它放到想要放置的位置,如D 盘,用解压软件解压到当前文件夹. 1.打开我们解压后的文件夹,就是D盘下的mysql-5.7.20-winx64 文件夹,在m

Linux程序设计学习笔记----多线程编程线程同步机制之互斥量(锁)与读写锁

互斥锁通信机制 基本原理 互斥锁以排他方式防止共享数据被并发访问,互斥锁是一个二元变量,状态为开(0)和关(1),将某个共享资源与某个互斥锁逻辑上绑定之后,对该资源的访问操作如下: (1)在访问该资源之前需要首先申请互斥锁,如果锁处于开状态,则申请得到锁并立即上锁(关),防止其他进程访问资源,如果锁处于关,则默认阻塞等待. (2)只有锁定该互斥锁的进程才能释放该互斥锁. 互斥量类型声明为pthread_mutex_t数据类型,在<bits/pthreadtypes.h>中有具体的定义. 互斥量

Linux程序设计学习笔记----网络通信编程API及其示例应用

转载请注明出处, http://blog.csdn.net/suool/article/details/38702855. BSD Socket 网络通信编程 BSD TCP 通信编程流程 图为面向连接的Socket通信的双方执行函数流程.使用TCP协议的通信双方实现数据通信的基本流程如下 建立连接的步骤 1.首先服务器端需要以下工作: (1)调用socket()函数,建立Socket对象,指定通信协议. (2)调用bind()函数,将创建的Socket对象与当前主机的某一个IP地址和TCP端口

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re

Linux 程序设计学习笔记----终端及串口编程基础之概念详解

转载请注明出处,谢谢! linux下的终端及串口的相关概念有: tty,控制台,虚拟终端,串口,console(控制台终端)详解 部分内容整理于网络. 终端/控制台 终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念. 1.终端 一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源. 终端有字符哑终端和图形终端两种. 控制台是另一种人机接口, 不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连, 这是人控制主机的第一人机接口.

Linux 程序设计学习笔记----POSIX 文件及目录管理

转载请注明:http://blog.csdn.net/suool/article/details/38141047 问题引入 文件流和文件描述符的区别 上节讲到ANSI C 库函数的实现在用户态,流的相应资源也在用户空间,但无论如何实现最终都需要通过内核实现对文件的读写控制.因此fopen函数必然调用了对OS的系统调用.这一调用在LINUX下即为open, close, read, write等函数.这些都遵循POSIX标准. so,在linux系统中是如何通过POSIX标准实现对文件的操作和目