不管做什么,自己没做过,听别人说一万遍也不如自己亲自动动手安装一遍来的实际,一遍不行就两遍,实在不行,三遍总能学会吧。
以前上学的时候老师讲过如何在linux系统下安装软件,但从来没亲手试过,现在没事试了一下linux下安装mysql数据库,记录一下遇到的问题。
一、首先,安装之前,我们需要在服务器上新建一个名为mysql的小组,并新建一个名为mysql的用户放在mysql组中,便于使用。
#创建小组mysql
[root@webapp ~]groupadd mysql
#创建mysql用户并将用户分到mysql组下
[root@webapp ~]useradd mysql
#可以查看下用户有没有创建成功
[root@webapp ~]id mysql
#出现如下信息说明创建成功
uid=997(mysql) gid=1000(mysql) groups=1000(mysql)
二、我们要下载mysql的安装包到我们准备的linux服务器上。两种方式,一种是去官网下载,另一种是使用命令在线下载(需要联网):
1、下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
2、在线下载:
[root@webapp ~]wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
然后,我们需要解压下载好的文件并将文件复制到mysql目录:
#解压mysql文件
[root@webapp ~]tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
#复制文件到mysql目录
[root@webapp ~]cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
#以上命令复制的同时会创建/usr/local/mysql目录并将解压好的文件放在此目录下
三、安装mysql
#进入mysql目录
[root@webapp ~]cd /usr/local/mysql
#创建mysql需要的文件夹
[root@webapp mysql]mkdir ./data/mysql
#为创建好的文件夹赋予mysql用户的权限
[root@webapp mysql]chown -R mysql:mysql ./
#执行安装命令
[root@webapp mysql]./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
#有可能会报错:FATAL ERROR: please install the following Perl modules before executing * Data::Dumper
#原因是没有安装其他必要的Perl软件
#执行以下命令即可解决:
[root@webapp mysql]yum -y install perl perl-devel
#若没有以上报错则可以跳过上面这一步
#继续
[root@webapp mysql]cp support-files/mysql.server /etc/init.d/mysqld
[root@webapp mysql]chmod 755 /etc/init.d/mysqld
[root@webapp mysql]cp support-files/my-default.cnf /etc/my.cnf
执行完以上命令,我们需要修改一些配置文件来确保mysql能正常运行:
#修改mysql的启动脚本
[root@webapp mysql] vi /etc/init.d/mysqld
#配置以下两项内容:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
#保存退出
执行完以上命令,我们就可以启动mysql了。有三种基本状态,分别包括:
#启动mysql服务
[root@webapp ~]service mysqld start
#查看mysql服务启动状态
[root@webapp ~]service mysqld status
#停止mysql服务
[root@webapp ~]service mysqld stop
#示例
[root@webapps ~]service mysqld status
MySQL running (10153) [ OK ]
[root@webapps ~]service mysqld stop
Shutting down MySQL.. [ OK ]
[root@webapps ~]service mysqld start
Starting MySQL.
至此,我们的mysql 就安装好了。
四、修改mysql的密码。
由于安装的时候未指定mysql的密码,我们首次登录mysql的时候密码不输入任何西,直接按回车键即可登录。
[root@webapp ~]mysql -u root -p
Enter password:
为了安全,我们是要自己定义密码的:
mysql>UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql>FLUSH PRIVILEGES;
#记得一定要更新权限,否则下次不生效。
五、允许除本机之外的其他机器访问数据库:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpassword' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
msyql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
六、其他问题
1、mysqldump:unknown variable ‘sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
需要修改 /etc/my.cnf文件里的配置:
删除或注释下面一句即可:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
2、启动mysql 报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
#解决
[root@webapp ~] find / -name mysql.sock
/tmp/mysql.sock
#验证目录是否正确
[root@webapp ~]mysql -u root -p -S /tmp/mysql.sock
#验证mysql.sock文件权限和用户是否正确
#若权限有问题,则需要修改
[root@webapp ~]chown -R mysql:mysql /tmp/mysql.sock
#再次启动,则会正常。
要想永久解决该问题,需要修改/etc/my.cnf配置文件,在该文件中添加以下内容:
[client]
socket = /tmp/mysql.sock
[mysqld]
socket = /tmp/mysql.sock
若有不正确的地方,欢迎大家批评指正。