linux程序设计——安装MySQL(第八章)

58 篇文章 0 订阅
57 篇文章 9 订阅

第八章  MySQL

这章介绍RDBMS或关系型数据库管理系统(Relational Database Management System)。
两个著名的开源RDBMS应用软件是PostgreSQL和MySQL。PostgreSQL能在任何情况下免费使用。MySQL在许多场合下也是免费的。用于同一用途的商业产品有Oracle、Sybase和DB2,它们都能运行与多个平台之上。仅支持Windows平台的微软SQL Server是另外一个。

8.1 安装MySQL

无论使用哪种linux套件,一般都提供了预编译的MySQL版本进行安装。例如,Red Hat,SUSE和Ubuntu都在它们的当前发行版本中提供了预编译的MySQL软件包。预编译的版本提供了一种简单的快速简历并运行MySQL的方法。
8.1.1 MySQL软件包
为了开发MySQL应用程序,不仅需要安装MySQL服务器,还需要安装MySQL开发库。使用命令:sudo apt-get install mysql-server mysql-client。
MySQL在安装时还会创建用户"mysql",该用户是MySQL服务器守护进程运行时所使用的默认用户名。
检查MySQL服务器是否正在运行:
ps -el | grep mysqld

如果看到有一个或者多个mysqld进程正在运行,那么表示MySQL服务器已经启动。
如果需要启动(或者重启、停止)MySQL服务器,可以使用GUI界面的服务控制面板。还可以使用服务配置编辑器,来确定是否想要MySQL服务器在每次linux启动时运行。
8.1.2 安装后的配置
假设一切运行正常,MySQL已经安装完成并以默认选项集启动了。使用下面的命令测试是否在运行:
mysql -u root -p
输入密码,即可看到“Welcom to the MySQL moniter”信息和一个mysql>提示符,这表示服务器正在运行。输入\s得到更多服务器的信息,输入quit或者\q退出控制台。其中 -u, --user=name是 User for login if not current user。
使用命令mysql -?可以获得更多有关服务器的信息。其中一条:Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
它告诉在哪里可以找到配置文件,如果需要配置MySQL服务器,就需要这些文件。配置文件通常是/etc/my.cnf或者/etc/mysql/my.cnf。
可以使用mysqladmin命令来查看正在运行的服务器状态:
mysqladmin -u root version -p
这个命令的输出不仅将确认服务器是否正在运行,而且还告知正在使用的服务器的版本。
mysqladmin命令还可以借助使用variables选项检查一个正在运行的服务器中的所有配置选项:
mysqladmin -u root variables -p
上面的命令将输出一长串变量信息(可以使用 mysqladmin -u root variables -p | grep datadir或 | grep have_innodb得到结果),其中两个特别有用的变量是:datadir和have_innodb, 前者告诉MySQL在哪里存储数据,后者通常是YES,表明MySQL服务器支持InnoDB存储引擎。
MySQL支持多种存储引擎,即用于数据存储的底层实现程序。最常见(也最有用)的两个存储引擎是InnoDB和MyISAM,但也有一些其他的存储引擎,如memory引擎,它根本不使用永久存储,而CSV引擎则使用逗号分隔变量文件。建议使用InnoDB存储引擎,因为它在性能和对加强不同数据元素之间关系的支持上取得了一些很好的折中。如果服务器没有启用对InnoDB的支持,检查配置文件/etc/my.cnf,在skip-innodb一行的开头加上#注释掉该行,然后使用服务编辑器重启MySQL。
在配置文件/etc/my.cnf或者/etc/mysql/my.cnf中添加default-storage-engine=INNODB可以设置服务其的存储引擎为InnoDB。
MySQL安装中所使用的root用户和系统的root用户毫无关系,MySQL只是默认使用一个称为"root"的用户作为管理用户,就像linux操作系统一样。MySQL数据库的用户和linux系统的用户ID没有关系,MySQL有自己的内置用户和权限管理。在默认情况下,只要在linux系统中有账号的用户都可以以MySQL管理员的身份登陆进MySQL服务器。
登陆进入MySQL之后可以通过下面的命令修改密码:
mysql> SET password=PASSWORD('secretpassword');
其中'secretpassword'为密码,使用一个分号;来结束SQL命令。严格来说,分号并不是实际SQL命令的一部分,它只是告诉MySQL客户端程序,SQL语句已准备好被执行了。SQL关键字使用大写字母,如SET。这并不是必须的,因为实际的MySQL语法允许关键字使用大写或小写字母,但是尽量使用大写的关键字,因为这样会使SQL语句更容易阅读。
首先 使用use命令切换到mysql数据库(use mysql),然后使用下面的命令查询内部表:
mysql> SELECT user, host, password FROM user;
可以看到MySQL不仅为用户保存不同的权限,也为基于主机名的连接类保存不同的特权。确保安装安全的下一步是删除那些由MySQL默认安装的不需要的用户。下面的命令将会从权限表中删除所有非root用户:
mysql> DELETE FROM user WHERE user != 'root';
下一条命令将删除从localhost以外的任何主机的登陆:
mysql> DELETE FROM user WHERE host != 'localhost';
最后使用下面的命令来检查是否还有遗漏的登陆:
mysql> SELECT user, host, password FROM user;
这时应该只有一个仅能从localhost连接的登录。并且这个root用户只能从本地极其连接。
mysql可以针对不同的机器来创建用户,并给用户分配不同的连接权限。特别地,出于安全考虑,只允许root用户通过本地机器连接。在本章中,创建一个拥有广泛权限的新用户rick。rick将使用3种不同的方法进行连接。
1.从本地机器连接
2.从IP地址在192.168.0.0~192.168.0.255范围内的任何机器连接
3.从wiley.com域中任何机器连接。
通过使用grant命令来创建用户并赋予权限。使用上面列出的3个不同的连接起点来创建用户。IDENTIFIED BY设定初始密码,注意使用单引号。
以root用户身份连接到MySQL,然后依次执行如下操作:
1.为rick创建一个本地登录:
mysql> GRANT ALL ON *.* TO rick@localhost IDENTIFIED BY 'secretpassword';
2.然后创建一个来自C类子网192.168.0的登录。注意必须使用单引号来保护IP范围,并使用掩码/255.255.255.0来确定允许的IP地址范围:
mysql> GRANT ALL ON *.* TO rick@'192.168.0.0/255.255.255.0' IDENTIFIED BY 'secretpassword';
3.创建一个登录,让rick能从wiley.com域中的任何机器登录:
mysql> GRANT ALL ON *.* TO rick@'%.wiley.com' IDENTIFIED BY 'secretpassword';
4.现在查看user表核对条目:
mysql> SELECT user, host, password FROM mysql.user;
8.1.3 安装后的故障修复
如果使用mysql进行连接失败,可以使用系统的ps命令来检查服务器进程是否正在运行:ps -el | grep mysql。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值