您的位置:首页 > 数据库 > MySQL

在Ubuntu上源码安装MySQL+安装问题解决+安全优化

2016-03-13 11:46 801 查看
0.说明        当然,MySQL的安装方法多种多样,在Ubuntu上,你可以采用apt-get的方式安装,这样的好处是:快速方便。基本上,它会帮你解决所有的函数库依赖问题,正常情况下,只要apt-get执行完成,那么MySQL也就可以使用了。        但我更倾向于使用源码的方式来安装MySQL,原因也很简单:除了有详细的官方文档外,你还可以非常清楚地知道你自己在做什么,这点在以后MySQL运行出现问题时将会有很大的帮助!
        但即便是按照官方文档来安装,你也会遇到各种各样的问题,这里,我将呈现一个完整的过程给大家,直到完成下面的4个任务:下载MySQL 5.6

安装准备:安装MySQL依赖函数库

安装与运行MySQL

优化MySQL
(1)账户安全优化
(2)数据库安全优化

        我是安装完Ubuntu 15.10后就进行MySQL 5.6的安装,因此非常有参考价值! 

1.下载MySQL 5.6
        下载地址:http://dev.mysql.com/downloads/mysql/5.6.html        进入该下载地址后,选择:
        Linux - Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive        或
        Linux - Generic (glibc 2.5) (x86, 32-bit), Compressed TAR Archive        这取决于你用的是32位的还是64位的,这里,我下载的是64位的,下载完成后的包如下:

        这样的话就可以很快安装完libaio函数库了。

3.安装与运行MySQL

(1)分别创建一个名为mysql的用户和用户组        如下:

[code=bash;toolbar:false">xpleaf@leaf:~$ sudo groupadd mysql
xpleaf@leaf:~$ sudo useradd -r -g mysql -s /bin/false mysql
xpleaf@leaf:/usr/local$ cd mysql
xpleaf@leaf:/usr/local/mysql$ ls -d data/
data/xpleaf@leaf:/usr/local/mysql$ sudo bin/mysqld_safe --user=mysql &
[1] 8365
xpleaf@leaf:/usr/local/mysql$ 160308 14:13:26 mysqld_safe Logging to '/usr/local/mysql-5.6.28-linux-glibc2.5-x86_64/data/leaf.err'.
160308 14:13:26 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql-5.6.28-linux-glibc2.5-x86_64/data        确认已经开启MySQL服务:
xpleaf@leaf:~$ sudo netstat -antup | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      8455/mysqld        mysql服务确实已经成功启动了!

(5)测试mysql服务[/b]
        为了使mysql可以更好地在你的系统上运行,建议进行一定的mysql服务测试,如下:
xpleaf@leaf:/usr/local/mysql$ sudo bin/mysqladmin version
bin/mysqladmin  Ver 8.42 Distrib 5.6.28, for linux-glibc2.5 on x86_64
Copyright (c) 2000, 2015, 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.

Server version          5.6.28
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 8 min 36 sec

Threads: 1  Questions: 2  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.003        成功了!然后我们再进行下面的操作热热身吧:
        xpleaf@leaf:~$ cd /usr/local/mysql
xpleaf@leaf:/usr/local/mysql$ sudo bin/mysqld_safe --user=mysql &
        然后再重新登陆:
xpleaf@leaf:/usr/local/mysql$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
……

mysql>        终于可以了!

        如果在这一步上遇到跟我上面不一样的情况的,可以给我留言。登陆成功后继续进行下面的操作:[code;'>mysql> select User, Host, Password from mysql.user;
+------+-----------+----------+
| User | Host      | Password |
+------+-----------+----------+
| root | localhost |          |
| root | leaf      |          |
| root | 127.0.0.1 |          |
| root | ::1       |          |
|      | localhost |          |
|      | leaf      |          |
+------+-----------+----------+
6 rows in set (0.00 sec)        从这张表中,我们可以看到有两种用户:
a.root用户:拥有最高权限b.匿名用户:拥有有限的权限        而至于Host参数,则是说明通过该用户,能够以哪种方式进入mysql数据库中,比如对于root用户,现在的方法都是可以进入mysql数据库中的:mysql -u root -h localhostmysql -u root -h leafmysql -u root -h 127.0.0.1mysql -u root -h ::1        匿名用户也是如此,但不管哪一种,其实都是指从本地登陆的意思。
        但我们会发现一个问题,就是两种用户中Password一栏都为空,这也就是为什么刚刚我们直接输入一个mysql就可以进入的原因了,默认情况下,root用户和匿名用户都没有密码!
        这也就是我们为什么要做基本优化的原因了,因为你不对这些用户做管理,那么谁都可以进行你的数据库,数据库完全将无从谈起!

--账户安全优化1:为root用户创建密码        接下来我们要做的是:
为每一个root用户创建密码    有三种方式可以进行这些操作:
使用set password语句

使用update语句

使用mysqladmin命令

    方式1:使用set password语句[code=bash;toolbar:false">xpleaf@leaf:~$ mysql -u root -p
Enter password: 
mysql> set password for 'root'@'localhost' = password('123456');
mysql> set password for 'root'@'127.0.0.1' = password('123456');
mysql> set password for 'root'@'::1' = password('123456'); 
mysql> set password for 'root'@'leaf' = password('123456');
mysql> flush privileges;[/code]xpleaf@leaf:~$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
xpleaf@leaf:/usr/local/mysql$ mysql -u root -p
Enter password:xpleaf@leaf:~$ mysql -u root -p
Enter password: 
mysql> update mysql.user set password = password('123456')   where User = '';
mysql> flush privileges;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: