朋友购买了阿里云的服务器,服务器上自带有CentOS操作系统,但是开发软件需要自己安装,接下来将介绍本地RedHat Linux 5.10虚拟机上搭建Mysql数据库。
一、软件准备
(1)jdk-6u32-linux-x64.bin
(2)MySQL-devel-5.6.16-1.linux_glibc2.5.x86_64.rpm
(3)MySQL-server-5.6.16-1.linux_glibc2.5.x86_64.rpm
(4)MySQL-client-5.6.16-1.linux_glibc2.5.x86_64.rpm
软件下载地址:
http://dev.mysql.com/downloads/mysql/
也可以到如下下载:
http://pan.baidu.com/s/1bnemZXP
二、安装软件
2.1 JDK配置
JDK安装配置比较简单,主要是配置本地虚拟机默认的Java编译器。安装RedHat系统时候,系统自带JDK是1.4.2版本的,可以通过java -version命令来查看当前JDK版本。
设置默认JDK版本方法:
(1)编辑vi /etc/profile.d/java.sh文件
添加如下代码:
1
2
3
|
export JAVA_HOME=/usr/java1. 6
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$PATH |
(2)重启机器验证
java -version
2.2 MySQL安装
2.2.1 检查原系统是否已经安装MysQL相关软件:
rpm -qa |grep -i mysql
2.2.2 卸载之前安装的MysqL相关软件或者是版本过低的软件。
rpm -qa |grep -i mysql | rpm -e | sh
2.2.3 安装MysQL
1) rpm -ivh MySQL-devel-5.6.16-1.rhel5.x86_64
2) rpm -ivh MySQL-server-5.6.16-1.rhel5.x86_64.rpm
3) rpm -ivh MySQL-client-5.6.16-1.rhel5.x86_64.rpm
2.3 配置Mysql数据库
2.3.1 启动mysql数据库
[root@AY1404 ~]# /etc/init.d/mysql start
ERROR:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因还没有配置Mysql数据库,解决方法,编辑/etc/my.cnf文件,添加如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
--创建存放数据路径 mkdir -p /usr/mysql/data chown -R mysql:mysql /usr/mysql chmod -R 777 /usr/mysql
--配置my.cnf文件 [mysqld] datadir=/usr/mysql/data socket=/var/lib/mysql/mysql.sock port= 3306
basedir=/usr [mysql.server] user=mysql basedir=/usr [client] socket=/var/lib/mysql/mysql.sock |
2.3.2 再次启动Mysql数据库
[root@AY1404 ~]# /etc/init.d/mysql start
有可能报错如下错误ERROR:
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/bin/mysqld_safe)
解决办法:
在配置my.cnf文件时候,basedir路径选择有问题, mysqld_safe命令找不到,可用手工执行mysqld_safe命令验证一下。
[root@AY1404 ~]# /usr/bin/mysqld_safe &
2.3.3 再次启动数据库
[root@AY1404 ~]# /etc/init.d/mysql start
报错信息如下:
Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
原因是我们当初创建数据库的时候,不存在mysql用户,只有root用户。解决方法:
执行/usr/bin/mysql_install_db --user=mysql
2.3.4 启动数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
三、Mysql数据库常用命令
3.1 修改密码
默认root用户密码时空,-p指旧密码,password后是新密码
[root@AY1404 ~]#/usr/bin/mysqladmin -u root -p password root123;
3.2 数据库启动关闭命令
1
2
3
4
5
6
7
8
|
--数据库启动服务 /etc/init.d/mysql start 或者 service mysql start --数据库关闭服务 /etc/init.d/mysql shutdown 或者 service mysql stop |
3.3 数据库命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
(1) show databases; --列出当前数据库
(2) use databasename; 选择数据库 如:use test; (3) show tables; 显示表 (4) describe tablename; 表的详细描述 (5) create database name ; 创建数据库
(6)表重命名 mysql>rename table table_abc to table_cba;
(7) 用文本方式将数据装入数据库表中 mysql> LOAD DATA LOCAL INFILE "/opt/dept.txt" INTO TABLE dept;
(8) 导入.sql文件命令(例如/opt/dept.sql) mysql>use database ;
mysql>source/opt/dept.sql;
(9) 数据库备份 导出整个库
mysql>mysqldump -u user_name -p password --default-character-set=latin1 database_name > output_database
导出表
mysqldump -u user_name -p password database_name tablename > table_name.sql
导出数据结构
mysqldump -u user_name -p password -d – add - drop - table database_name > database_name.sql
(10)数据库还原 还原某张表
mysqldump -u username -p password database_name < inputfile.sql
|
四、解决系统内存溢出问题
Mysql占内存较多,系统经常报内存溢出,需要在my.cnf里添加如下参数设置。
Mysql V5.6数据库一些默认值较大,可通过SHOW VARIABLES LIKE 'perf%';进行查看数据库当前的值。
Mysql官网online文档http://dev.mysql.com/doc/refman/5.6/en/performance-schema-system-variables.html
现调整以下参数的大小:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
performance_schema_max_table_instances=200 #performance_schema_max_table_instances default value 12500
table_definition_cache=200 #table_definition_cache default value 1400
table_open_cache=128 #table_open_cache default value 2000
key_buffer_size = 8M sort_buffer_size = 8M query_cache_size= 16M tmp_table_size=24M key_buffer_size=20M |