(五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql安装

来源:互联网 发布:怎么联系淘宝在线客服 编辑:程序博客网 时间:2024/05/02 01:33

因为在网上发现系统性、严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Nginx+Tomcat+Mysql+FTP的操作文档,梳理记录如下,特别是在实践中碰到的各种问题和容易出错的地方,都做了重要标注和提醒(踩过的那些坑,我都特别标注出来);希望对于那些想要系统地完整搭建Linux环境的程序员们一个系统性的参考。但因大部分都是边搭建边记录下的操作,必定有所疏漏,还望见谅; 如有问题和意见请帮忙在后面的评论中指出,万分感谢!另整个搭建的过程中参考了网上许多优秀博主的优秀实践,在文中末尾或者其他适当的地方都有所标注,如有必要,你可以按参考的链接阅读参考的原文章。本文档一共分为6篇,这6个部分分别是:

1、(一)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - FTP安装

2、(二)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 防火墙配置

3、(三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建

4、(四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合

5、(五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql 安装

6、(六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 一些常用命令总结

这篇系列性文章将会在以后的实践中持续地做修正和更新。

(在整理和记录这些文档的时候,对于我这个曾经从来不写博客的程序员来说,我发现的确收获良多,首先最重要的是对我的知识结构进行了一次重要的梳理和总结;另外,让我的思维和逻辑更加缜密;第三,强化和加深记忆;四,共享和分享的精神。

最后,希望对你有用。)



(五) Mysql安装


1、安装 查看有没有安装过: 

 yum list installed mysql*

 rpm -qa | grep mysql* 

查看有没有安装包:

 yum list mysql* 

安装mysql客户端:

 yum install mysql 

安装mysql服务器端: 

 yum install mysql-server 

yum install mysql-devel


2、启动&&停止数据库字符集设置 

 mysql配置文件/etc/my.cnf中加入default-character-set=utf8 

启动mysql服务: service mysqld start或者/etc/init.d/mysqld start

开机启动:

添加开机启动:chkconfig --add mysqld;

开机启动:chkconfig mysqld on;

查看开机启动设置是否成功chkconfig--list | grep mysql* 

mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

停止服务命令: 

service mysqld stop


3、登录 创建root管理员: 

 mysqladmin -u root password 123456 

 登录: mysql -u root-p输入密码即可。

(可能提示“ERROR 1045 (28000): Access denied for user '-root'@'localhost' (using password: YES)”)就用到下面的功能。

忘记密码: 

service mysqld stop;

mysqld_safe --user=root --skip-grant-tables;

这一步骤执行的时候不会出现新的命令行,你需要重新打开一个窗口执行下面的命令

mysql -u root ;

use mysql;

update user setpassword=password("new_pass") where user="root"; 

flushprivileges; 


4、远程访问 开放防火墙的端口号mysql

增加权限:mysql库中的user表新增一条记录host“%”user“root”

或者:update user set host = '%'  where user = 'root' and host="localhost";


5、Linux MySQL的几个重要目录 

 数据库目录/var/lib/mysql/

配置文件 /usr/share /mysqlmysql.server命令及配置文件)

相关命令 /usr/binmysqladmin、mysqldump等命令)

启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录)

 

6、删除 mysql数据库 

如果使用的是 yum安装的 mysql,需要删除的话,就使用如下命令:

yum -y remove mysql*

然后将 /var/lib/mysql文件夹下的所有文件都删除干净

最后再重新执行上面的安装步骤。

 

7.授权用户从远程登录

1. 改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql"数据库里的 "user"表里的"host"项,从"localhost"改称"%"

mysql -u root -p;

mysql>use mysql;

mysql>update user set host = '%'  where user = 'root' and host="localhost";

mysql>select host, user from user  where user = 'root';

2. 授权法。

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允许用户myuserip192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

 

 

修改Mysql默认数据库数据默认存放位置

参考:http://www.jb51.net/article/33578.htm

 

由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。 我这里在/data, 把外部数据盘挂载在/data下。

下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/data/mysql目录的具体操作: 

 

在数据库里看一下数据库里当前数据文件的存放路径:

mysql> show variables like '%dir%';



1、首先我们需要关闭MySQL,命令如下
service mysqld stop 


2、然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录
cd /var/lib
ls
运行这个命令之后就会看到mysql的目录了,然后执行cp命令
cp -a mysql /data/ #这样就把数据库复制到/dat下面去了

注意:(-a这个参数一定要带着,否则复制过去的权限就不对了。)

如果数据库比较大的话,时间会比较长,可能会超时,具体怎么设置ssh不超时的办法,请大家自己找相关资料。 


3、然后我们修改配置文件,一共有三个,下面我一一说明
修改第一个文件:修改之前先备份cp /etc/my.cnf /etc/my.cnfbak
vi /etc/my.cnf
打开之后修改datadir的目录为/data/mysql
把socket改成/data/mysql/mysql.sock #为了安全起见,你可以把原来的注释掉,然后重新加入一行,改成现在的目录。
修改第二个文件:修改之前先备份 cp /etc/init.d/mysqld /etc/init.d/mysqldbak
vi /etc/init.d/mysqld
注意:准确的位置是/etc/rc.d/init.d/mysqld,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射,
所以用上面的命令即可,也简单。
把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:/data/mysql 
修改第三个文件:修改之前先备份 cp /usr/bin/mysqld_safe/usr/bin/mysqld_safebak
vi /usr/bin/mysqld_safe
这里也是修改datadir的目录为/data/mysql 


4、下面需要建立一个mysql.sock的链接
ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock

至此所有的修改都完成了,下面启动mysql
service mysqld start
或者重启linux
reboot
如果能正常启动,说明修改成功。

 

#防火墙允许mysql端口3360远程访问

#vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -jACCEPT

 


Mysql配置文件my.cnf

安装了mysql没有my.cnf文件的情况

1、可以把mysql的示例配置文件,如my-medium.cnf拷贝到/etc/my.cnf,再去修改/etc/my.cnf的配置/usr/share/doc/MySQL-server-5.5.38/my-medium.cnf(ExampleMySQL config file for medium systems with little memory (32M - 64M) )

可以通过命令:>find / -name 你要找的文件(my.cnf/ my-medium.cnf)  或者  >whereis my.cnf 找到.

所有mysql的配置文件例子都放在:

# ll/usr/share/doc/MySQL-server-5.5.38/

 

2、参考目录下面的文章修改my.cnf文件Example MySQL config file for very large systems

 

修改MySQL的时区:

查看:mysql> show variables like '%time_zone%';   

1 、可以通过修改my.cnf
[mysqld] 之下加
default-time-zone=timezone
来修改时区。如:
default-time-zone = '+8:00'
修改完重启msyql ># service mysql restart
注意一定要在 [mysqld]之下加,否则会出现 unknown variable 'default-time-zone=+8:00'

2、通过命令行在线修改(经测试不行)

看到有人通过命令行修改,试过之后发现只能改掉 timezone(而且只针对当前客户端影响),但是查处的时间还是原来的CST时间,重启mysql也没有,全部恢复了。所以这种方式行不通,还是需要修改my.cnf配置文件才行.以下为测试:

1. set time_zone = timezone  

2. 比如北京时间(GMT+0800)  

3. set time_zone = '+8:00'; 如下:  

4. mysql> set time_zone='+8:00';

5.   

6. mysql> show variables like '%time_zone%';     

7. +------------------+--------+  

8. | Variable_name    | Value  |  

9. +------------------+--------+  

10.| system_time_zone | CST    |  

11.| time_zone        | +08:00 |  

12.+------------------+--------+ 

mysql> flush privileges;   # 立即生效

此时mysql时区已更改正确,与系统时区都使用为北京时间。

## 能改掉 timezone(而且只针对当前客户端影响),但是查处的时间还是原来的CST时间,重启mysql也没有,全部恢复了。所以这种方式行不通,还是需要修改my.cnf配置文件才行.



验证:

mysql> show variables like '%time_zone%';

mysql > select CURTIME();

mysql > select now();

  

参考文章:

linuxmysql的编译安装和my.cnf配置文件详解:

http://blog.itpub.net/26690043/viewspace-719495/ 


linux下导入、导出mysql数据库命令

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码

2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

注:/usr/local/mysql/bin/ --->  mysql的data目录


二、导入数据库
1、首先建空数据库
mysql>create database abc;

2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql

建议使用第二种方法导入。

注意:有命令行模式,有sql命令





参考:

http://blog.csdn.net/tengdazhang770960436/article/details/18361979




1 0
原创粉丝点击