安装MySQL
Posted gddg0769
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装MySQL相关的知识,希望对你有一定的参考价值。
下载的mysql的安装包就是MySQL-5.6.22-1.el6.x86_64.rpm-bundle.tar。可以使用file命令来查看一下这个文件,它是一个tar的软件包,所以说我们需要先将这个tar包解开,再运行里面的rpm包,
[[email protected] tmp]# file MySQL-5.6.22-1.el6.x86_64.rpm-bundle.tar
MySQL-5.6.22-1.el6.x86_64.rpm-bundle.tar: POSIX tar archive (GNU)
[[email protected] tmp]# tar xf MySQL-5.6.22-1.el6.x86_64.rpm-bundle.tar
[[email protected] tmp]# ls /tmp/
MySQL-client-5.6.22-1.el6.x86_64.rpm
MySQL-devel-5.6.22-1.el6.x86_64.rpm
MySQL-embedded-5.6.22-1.el6.x86_64.rpm
MySQL-server-5.6.22-1.el6.x86_64.rpm
MySQL-shared-5.6.22-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.22-1.el6.x86_64.rpm
MySQL-test-5.6.22-1.el6.x86_64.rpm
可以看到得到了很多的rpm包,这里面常用的包有MySQL-client-5.6.22-1.el6.x86_64.rpm和mMySQL-server-5.6.22-1.el6.x86_64.rpm,如果仅仅是想安装一个MySQL的服务器使用的话,安装这两个包其实就足够了,它包含了mysql的服务器端和客户端软件。有些时候还需要MySQL-devel软件包,这个包也常安装,它里面包含了MySQL的库文件以及头文件,有些时候安装一些其他的软件需要调用到这些MySQL的库文件和头文件的时候就安装MySQL-devel包,比方说安装MySQL proxy代理服务器,或者是mysql enterprise monitor监控软件可能都需要安装mysql-devel软件包,下面来安装这些软件包。安装方式可以采用两种:
一种是rpm命令一个个安装,在安装过程中可能会遇到依赖性问题,需要手工去解决。
[[email protected] tmp]# rpm -ivh MySQL-client-5.6.22-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]
另外一个方式是使用yum命令的方式。
[[email protected] tmp]# yum install MySQL-server-5.6.22-1.el6.x86_64.rpm
安装完毕之后,屏幕上打印出了很多的内容,注意下面这句话:
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in ‘/root/.mysql_secret‘.
一个随机性的密码已经为mysql的root 用户设置好了,你可以在root家目录下的.msyql_secret中看到这个密码,这个是mysql 5.5版本之后新出现的一个特性,mysql 5.5之前的版本在安装完之后,有一个非常重要的安全性隐患就是mysql 管理用户和mysql root用户是空密码,所以对于一个刚刚安装完成之后的mysql服务器来说,任何人可以从任何地方使用空密码直接访问数据库,这是一个很不安全的事情,因此在5.5.以后在mysql安装完之后会随机性的为root用户随机设置一个密码并且把它保存在root家目录下的.msyql_secret文件中
You must change that password on your first connect,
no other statement but ‘SET PASSWORD‘ will be accepted.
See the manual for the semantics of the ‘password expired‘ flag.
你必须在你第一次连接mysql的时候重设这个密码。别的都干不了,但是‘SET PASSWORD这个命令是可以执行的,可以去看相应的手册,比如 password expired部分的介绍
Also, the account for the anonymous user has been removed.
In addition, you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test database.
This is strongly recommended for production servers.
See the manual for more instructions.
这里提到了一个工具叫做mysql_secure_installation叫安全的安装,这个安装其实提供了几个功能,让我们在初次安装MySQL之后呢,提供一些安装上面的修改,建议大家在安装完毕之后使用,后面还有一些介绍,可以去mysql官方网站去看它的手册,还可以去shop.mysql.com买它的商品,等等。
Please report any problems at http://bugs.mysql.com/
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
New default config file was created as /usr/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
首先想要去操作mysql的时候,需要知道它给我们设置的随机密码是什么。我们来看一下
[[email protected] tmp]# cd
[[email protected] ~]# ls .mysql_secret
.mysql_secret
[[email protected] ~]# cat .mysql_secret
# The random password set for the root user at Mon Dec 8 01:47:25 2014 (local time): T9YV_AZe_HIZoQ5z
.mysql_secret这个文件里面写了随机性的密码。要连接mysql,就需要把这些随机密码输入进去。
不过先不着急,先运行一下mysql_secure_installation这个命令,建议在第一次安装完成之后先运行这个命令,如果你没有运行mysql的话,当然无法对它进行一些安装方面的设置和操作。先把mysql这个服务启动起来。
[[email protected] ~]# service mysql start
Starting MySQL. [ OK ]
这里介绍一下,在mysql5.1版本之后,官方所发布的mysql的安装包服务名称就发生了变化,以前叫做mysqld,现在叫做mysql。另外需要注意一点的是,rhel发行版本的光盘中带的mysql它的服务名称仍然是mysqld,所以这个名字不要忘记,官方下的这个MySQL包叫做mysql,如果redhat发行的光盘当中叫做mysqld,我们可以使用service mysqld start 来启动mysql,或者也可以使用 /etc/init.d/mysqld start 通过脚本启动它。这两条命令作用是一样的。
现在再来执行mysql_secure_installation,接下来输入.mysql_secret中的密码。输入密码之后它会问是否修改密码,可以将密码修改为一个容易记忆的,符合密码复杂性要求的密码,比方说至少八位以上数字大小写字母特殊符号都有等等的要求。
[[email protected] ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we‘ll need the current
password for the root user. If you‘ve just installed MySQL, and
you haven‘t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
You already have a root password set, so you can safely answer ‘n‘.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
接下来它继续问你,mysql在安装完毕之后,它默认会创建一个匿名用户,这个匿名用户是用来进行mysql测试时使用的,这个匿名用户它允许任何人从任何地方登陆到mysql,但是不能干其他的一些事情,这个也是一个安全隐患,所以它会问你是否要移出匿名用户,选择yes移除,
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
接下来,root是只允许从本地登录mysql的,所以在这里它给你提供了一个选项,是否禁止root用户从远程的机器上登录到这台mysql,这个设置一般来说在生产环境当中应该选择的是yes,也就是关闭。因为在生产环境当中往往注重mysql的安全性,所以对于mysql管理用户的登录是限制的非常严格的,如果你需要用root用户来登录mysql的话,往往先是ssh远程连接的方式,先登录到具体的服务器上,然后在这台服务器的本地使用root用户来登录。当然对于其它一些要求不严格的情况下,是允许root用户远程登录的,所以说这个选项是否选择,要看具体公司的安全要求,来针对性选择。这里选择n,允许root用户远程登录。
Normally, root should only be allowed to connect from ‘localhost‘. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
... Success!
接下来,默认情况下mysql在安装的时候会创建一个叫做test的库,这个库任何人都可以进行访问,这个库的用途是用于测试的,所以说问你是否要移除test数据库,y移除
By default, MySQL comes with a database named ‘test‘ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
接下来是否重读一下授权表,这样可以对mysql相应的授权,刚才所发生的一些修改,保证它立即生效,yes。这样一来的可以安全放心的使用mysql了。
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
All done! If you‘ve completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
Cleaning up...
接下来介绍mysql客户端的一些使用,客户端的使用分为两种:
客户端使用
· 交互式
· 非交互式
最为常用的往往是交互式,而非交互式往往在某一些特殊需要下才进行使用。
首先来看,最为基本的客户端就是mysql这个命令了。
范例一:mysql -h 192.168.0.1 -P 3306 -uroot -p123 [dbname]
范例二:mysql -e “create database power”
mysql命令后面可以跟上很多相应的参数,不同的参数起到不同的作用,看一下这些参数的使用。
常见参数 解释
----------------------------------
-u 指定登录用户名
-p 指定登录密码
-h 指定数据库主机地址
-P 指定登录端口
dbname 指定操作数据库
-e 使用非交互式操作
-P 指定登录msyql服务器的端口,默认端口是3306,如果在设置服务器的时候将服务器的端口改成别的了,在这里可以指定别的端口号,比方说3300。
-p 如果为-u指定的用户设置了密码,那么-p就必须指定,如果没有为用户设置密码,这个用户是空密码,一般来说是不会这么做的,假设说没有密码,不指定-p 也可以,直接就可以登录。
注意-p之后如果要写密码的话,一定要紧跟着-p之后写密码-ppasswd,一旦-p后面发生了空格的话,它就会认为这个密码,并不像在命令行当中输入,而是在enter之后提供给一个密码提示符后面输入密码进行登录,而空格之后的字符,它就会认为是要操作的数据库的名称,因此有没有空格区别很大,这一点一定要注意,前面这些参数可以没有空格,前面的参数是无所谓的,有没有空格都可以,但是一定要注意到特别是这个-p,-p后面的空格就变得非常敏感了,所以一般来说将-p参数放到最后来写。方便写完密码之后,写数据库。
[[email protected] ~]# mysql -h localhost -u root -p123
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 25
Server version: 5.6.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, 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>
现在要登录到本机的数据库上,假如说直接使用数据库的管理员用户root用户,其实这样一来参数就会大大的简化,因为一些可选性的参数就可以不写了,可以直接写mysql -p就可以了,-h不写默认就是本机,所以说可以省略的,-u参数不写默认使用root用户登录,也可省略,-P不写默认使用端口3306,数据库端口没有改过,默认就是3306,所以说这个也可以不写,-p一定要写,因为给root用户设置过密码,数据库名称也可以不写,可以进入数据库之后再去指定,所以最简化的方式就是mysql -p,-p后面也不跟密码直接enter,会看到在下一行当中它会提示你输入密码,可以再这里输入密码,而且在这里输入密码还有一个好处,密码并不会直接显示在终端上。这样更加安全一些。enter之后你会看到mysql的欢迎信息,并且提示符会变成mysql跟着一个>大于符号,这就代表登录成功了,就连接到了mysql的数据库里面。
[[email protected] ~]# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 26
Server version: 5.6.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, 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>
以上是关于安装MySQL的主要内容,如果未能解决你的问题,请参考以下文章