Linux安装MySQL主要有两种方法:一种是通过源码自行编译安装,这种适合高级用户定制MySQL的特性;另一种是通过编译过的二进制文件进行安装。二进制文件安装的方法又分为两种:一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件;第二种是使用RPM或其他包进行安装,这种安装进程会自动完成系统的相关配置,所以比较方便。
1、通用安装方法
1.1下载文件
mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
1.2安装步骤
(1)检查是否已安装,grep的-i选项表示匹配时忽略大小写。
# rpm -qa|grep -i mysql
可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸:载时使用了--nodeps选项,忽略了依赖关系:
#rpm -e mysql-5.1.73-5.el6_6.x86_64--nodeps
(2)添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组。
# groupadd mysql
# useradd -r -g mysql mysql
useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
(3)将二进制文件解压到指定的安装目录,这里指定为/usr/local。
# cd/usr/local/
# tar -zxvf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
解压后在/usr/local/生成了解压后的文件夹mmysql-5.6.27-linux-glibc2.5-x86_64,这名字太长,我们为它建立一个符号链接mysql,方便输入。
# ln -s mysql-5.6.27-linux-glibc2.5-x86_64 mysql
(4)进入mysql文件夹,也就是mysql所在的目录,并更改所属的组和用户。
# cd mysql
# chown [-R] mysql /usr/local/mysql
# chgrp [-R] mysql /usr/local/mysql
-R:进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录的情况。
(5)执行mysql_install_db脚本,对mysql中的data目录进行初始化并创建一些系统表格。
注意mysql服务进程mysqld运行时会访问data目录,所以必须由启动mysqld进程的用户(就是我们之前设置的mysql用户)执行这个脚本,或者用root执行,但是加上参数--user=mysql。
# /usr/local/mysql/scripts/mysql_install_db --user=mysql
如果mysql的安装目录(解压目录)不是/usr/local/mysql,那么还必须指定目录参数,如:
# /usr/local/mysql/scripts/mysql_install_db --user=mysql\ --basedir=/opt/mysql/mysql \ --datadir=/opt/mysql/mysql/data
将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
(6)复制配置文件。
# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
(7)将mysqld服务加入开机启动项。
首先需要将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysqld。
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
通过chkconfig命令将mysqld服务加入到自启动服务项中。
# chkconfig --addmysqld
注意服务名称mysqld就是我们将mysql.server复制到/etc/init.d/时重命名的名称。
查看是否添加成功。
#chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(8)重启系统,mysqld就会自动启动了。
检查是否启动。
# netstat -anp|grep mysqld
tcp 0 0 :::3306 :::* LISTEN 2000/mysqld
unix 2 [ ACC ] STREAM LISTENING 11895 2000/mysqld /tmp/mysql.sock
如果不想重新启动,那可以直接手动启动。
# service mysqld start
Starting MySQL.. SUCCESS!
(9)运行客户端程序mysql,在mysql/bin目录中,测试能否连接到mysqld。
# /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.27 MySQL Community Server (GPL)
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.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
此时会出现mysql>命令提示符,可以输入sql语句,输入quit或exit退出。为了避免每次都输入mysql的全路径/usr/local/mysql/bin/mysql,可将其加入环境变量中,在/e tc/profile最后加入两行命令:
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
这样就可以在shell中直接输入mysql命令来启动客户端程序了。
2、RPM安装方法
2.1下载文件
MySQL-5.6.27-1.linux_glibc2.5.x86_64.rpm-bundle.tar
解压出文件:
MySQL-client-5.6.27-1.linux_glibc2.5.x86_64.rpm
MySQL-devel-5.6.27-1.linux_glibc2.5.x86_64.rpm
MySQL-embedded-5.6.27-1.linux_glibc2.5.x86_64.rpm
MySQL-server-5.6.27-1.linux_glibc2.5.x86_64.rpm
MySQL-shared-5.6.27-1.linux_glibc2.5.x86_64.rpm
MySQL-shared-compat-5.6.27-1.linux_glibc2.5.x86_64.rpm
MySQL-test-5.6.27-1.linux_glibc2.5.x86_64.rpm
2.2安装步骤
(1)检查是否已安装,grep的-i选项表示匹配时忽略大小写。
# rpm -qa|grep -i mysql
可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸:载时使用了--nodeps选项,忽略了依赖关系:
#rpm -e mysql-5.1.73-5.el6_6.x86_64--nodeps
(2)安装MySQL的服务器端软件,注意切换到root用户。# rpm -ivh MySQL-server-5.6.27-1.linux_glibc2.5.x86_64.rpm
安装完成后,安装进程会在Linux中添加一个mysql组,以及属于mysql组的用户mysql。可通过id命令查看。
# id mysql
uid=496(mysql) gid=493(mysql) groups=493(mysql)
MySQL服务器安装之后虽然配置了相关文件,但并没有自动启动mysqld服务,需自行启动。
# service mysql start
Starting MySQL.. SUCCESS!
可通过检查端口是否开启来查看MySQL是否正常启动。
# netstat -anp|grep 3306
tcp 0 0 :::3306 :::* LISTEN 11847/mysqld
(3)安装MySQL的客户端软件。
# rpm -ivh MySQL-client-5.6.27-1.linux_glibc2.5.x86_64.rpm
如果安装成功应该可以运行mysql命令,注意必须是mysqld服务以及开启。
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.27 MySQL Community Server (GPL)
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.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
(4)初始化mysql密码及配置
①简单配置
查看roo账号密码。
# cat /root/.mysql_secret
The random password set for the root user at Thu Oct 15 09:07:11 2015 (local time): xUzGG9TI3qTt5Cn2
输入登录账号密码。
# mysql -u root -p xUzGG9TI3qTt5Cn2
mysql>setpassword =password('root');
mysql> exit
初始化配置,运行以下语句。
# /usr/bin/mysql_secure_installation(初始密码为空,直接回车)
设置root用户密码。
Set root password? [Y/n]Y
删除匿名用户。
Remove anonymous users? [Y/n]Y
设置允许远程连接。
Disallow root login remotely? [Y/n]n
设置是否删除测试数据库。
Remove test database and acess to it?[Y/n]n
设置是否刷新mysql权限。
Reload privilege tables now? [Y/n]Y
Thanks forn using MySQL!(配置成功)