本节,我们学习安装 MySQL 数据库,其安装步骤稍微复杂,我们逐步来进行解析。
1) 添加 mysql 用户和 mysql 用户组
命令如下:
[root@localhost ~]# groupadd mysql #添加mysql用户组 [root@localhost ~]# useradd -g mysql mysql #添加mysql用户,同时指定mysql用户的初始组是mysql组
这里添加的 mysql 用户和用户组是稍后用来给 MySQL 安装目录分配权限用的,所以并不需要设定密码,因为这个用户是不能直接登录 Linux 系统的。
2) 进入 MySQL 解压缩目录
[root@localhost ~]# cd /usr/local/src/mysql-5.5.23
3) 编译前配置
[root@localhost mysql-5.5.23]# cmake \ #命令 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装位置 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #指定socket(套接字)文件位置 -DEXTRA_CHARSETS=all \ #支持所有的扩展字符集 -DDEFAULT_CHARSET=utf8 \ #指定默认字符集 -DDEFAULT_COLLATION=utf8_general_ci \ #指定默认字符校对 -DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装myisam存储引擎 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装innodb存储引擎 -DWITH_MEMORY_STORAGE_ENGINE=1 \ #安装memory存储引擎 -DWITH_READLINE=1 \ #支持readline库 -DENABLED_LOCAL_INFILE=1 \ #启用加载本地数据 -DMYSQL_USER=mysql \ #指定MySQL运行用户 -DMYSQL_TCP_PORT=3306 #指定MySQL端口
4) 编译
[root@localhost mysql-5.5.23]# make
使用 cmake 进行编译。如果编译过程中出现了报错,则不再使用“make clean”命令清除缓存及临时文件,而是直接删除“rm-rf CMakeCache.txt”文件。
5) 编译安装
[root@localhost mysql-5.5.23]# make install
6) 生成MySQL的配置文件,并修改配置文件
这个配置文件不用手工建立,在 MySQL 安装目录中给我们准备了模板文件,只需把模板文件复制到指定位置并改名即可。命令如下:
[root@localhost mysql-5.5.23]#cp/usr/local/mysql/share/mysql/my-medium.cnf/etc/my.cnf
7) 修改 MySQL 安装目录的权限
[root@localhost mysql-5.5.23]# cd /usr/local/mysql/ #进入MySQL安装目录 [root@localhost mysql]# chown -R mysql. #把当前目录下所有文件的所有者改为root用户 [root@localhost mysql]# chgrp -R mysql. #把当前目录下所有文件的所属组改为mysql组
8) 初始化数据库
源码包安装的 MySQL 中所有的数据库默认都保存在 /usr/local/mysql/data/ 目录中,MySQL 的初始数据库 mysql 库和 test 库也会保存在这个目录中。
但是,如果我们仔细查看 /usr/local/mysql/data/ 目录,就会发现这个目录中只有两个空目录,并没有任何数据。也就是说,MySQL 中的所有数据库是不存在的,那么这个 MySQL 是不能使用的,因为 MySQL 的所有用户是要保存在 user 表中的,而 user 表保存在 mysql 库中,而 mysql 库是保存在 /usr/local/mysql/data/ 目录中的。
那么,我们现在需要在 data 目录中建立 MySQL 的初始数据库。命令如下:
[root@localhost mysql]# /usr/local/mysql/bin/mysql_install_db --user=mysql #初始化数据库
这条命令的 --user 选项表示使用 mysql 用户来初始化数据库,这个用户要和我们在步骤一中建立的用户一致。命令执行完成之后,/usr/local/mysal/data/ 目录中应该会出现很多相应的数据,证明数据库初始化成功。
9) 继续修改MySQL安装目录的权限
[root@localhost mysql]# chown -R root. #把当前目录下所有文件的所有者改为root用户 #注意:修改的目录依然是/usr/local/mysql/目录下的文件 [root@localhost mysql]# chown -R mysql data #把data目录的所有者改为mysql用户
10) 启动 MySQL 服务器,并保证 mysql 服务开机自启动
MySQL 服务器的安装已经完成,我们可以尝试启动 MySQL 服务器,命令如下:
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe ——user=mysql & #使用mysql用户启动MySQL服务器,并在后台持续运行 [root@localhost mysql]# netstat -tlun | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN #3306端口已经开启了
当然,我们还要保证 mysql 服务开机自启动,命令如下:
[root@localhost mysql]# vi /etc/rc.local #修改自启动配置文件,加入如下的mysql服务标准启动命令 /usr/local/mysql/bin/mysqld_safe ——user=mysql &
11) 设定 MySQL 中 root 用户的密码,并登录
MySQL 的管理员也是 root,不过这只是数据库的管理员,不要和 Linux 的 root 用户混淆了。我们需要给 MySQL 的本地用户设定一个密码。设定密码的方式有很多种,我们使用 Linux 的命令 mysqladmin 设定 MySQL 的 root 用户的密码。命令如下:
[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -u root password 123 #给MySQL的root用户设定密码为123 [root@localhost mysql]# /usr/local/mysql/bin/mysql -u root -p #使用root用户登录mysql Enter password: #输入正确的密码 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version:5.1.59-community-log Source distribution Copyright (c) 2000, 2011, 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的交互界面 mysql> \s #查询服务器状态信息 …省略部分输出… Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 #编码格式已经修改为UTF-8 …省略部分输出… mysql> exit #退出MySQL