您的位置:首页 > 数据库 > MySQL

MySql记录一(从安装开始)

2015-10-14 11:57 633 查看
最近因换到创业型公司,环境搭建都是重新搭起,我对这方面又比较感兴趣,所以像mongodb的主从备份和分布式都是我一点一点搭建起来的。现在记录一下MySql的搭建历程,mark一下。

MySql三种安装方式,rpm包形式、通用二进制形式和源码编译。以下介绍rpm包安装方式:

一、安装(系统:Red Hat 4.8.2-16;MySql版本:MySQL-5.6.26)

1、下载

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.21-1.el6.x86_64.rpm-bundle.tar
2、解压

tar -xf MySQL-5.6.26-1.el7.x86_64.rpm-bundle.tar

解压信息如下:

-rw-r--r-- 1 7155 wheel 20002848 Jul 16 01:16 MySQL-client-5.6.26-1.el7.x86_64.rpm 客户端组件

-rw-r--r-- 1 7155 wheel  3549168 Jul 16 01:16 MySQL-devel-5.6.26-1.el7.x86_64.rpm 针对于MySQL编译安装PHP等依赖于MySQL的组件包

-rw-r--r-- 1 7155 wheel 92351788 Jul 16 01:16 MySQL-embedded-5.6.26-1.el7.x86_64.rpm MySQL的嵌入式版本

-rw-r--r-- 1 7155 wheel 60689608 Jul 16 01:17 MySQL-server-5.6.26-1.el7.x86_64.rpm 共享库

-rw-r--r-- 1 7155 wheel  2105724 Jul 16 01:18 MySQL-shared-5.6.26-1.el7.x86_64.rpm 共享库

-rw-r--r-- 1 7155 wheel  2299656 Jul 16 01:18 MySQL-shared-compat-5.6.26-1.el7.x86_64.rpm 为了兼容老版本的共享库

-rw-r--r-- 1 7155 wheel 59441904 Jul 16 01:18 MySQL-test-5.6.26-1.el7.x86_64.rpm MySQL的测试组件(在线处理功能)

3、安装

1)、安装前检查MySql及相关rpm包,是否安装,如果有安装,则移除

[root@iZ941s5i8zfZ /]# rpm -qa | grep -i mysql

MySQL-devel-5.6.26-1.el7.x86_64

MySQL-server-5.6.26-1.el7.x86_64

MySQL-client-5.6.26-1.el7.x86_64

ps:上面是已经安装好Mysql

2)如果有冲突,则移除(我在安装过程中则遇到冲突)

[root@iZ941s5i8zfZ mysql]# yum -y remove mariadb-libs-1:5.5.40-1.el7_0*

3)、安装

[root@iZ941s5i8zfZ mysql]# rpm -ivh MySQL-server-5.6.26-1.el7.x86_64.rpm

[root@iZ941s5i8zfZ mysql]# rpm -ivh MySQL-devel-5.6.26-1.el7.x86_64.rpm

[root@iZ941s5i8zfZ mysql]# rpm -ivh MySQL-client-5.6.26-1.el7.x86_64.rpm

ps:rpm命令

-i 显示套件的相关信息

-v 报告每一步操作的情况

-h 使用符号#显示安装进度

4、修改配置和初始化

1)、修改配置文件位置

[root@iZ941s5i8zfZ mysql]# cp /usr/share/mysql/my-default.cnf /etc/my.cnf

2)、初始化MySql数据库

[root@iZ941s5i8zfZ mysql]# /usr/bin/mysql_install_db

3)、MySql启动

service mysql start

4)、查看root账号密码

[root@iZ941s5i8zfZ mysql]# cat /root/.mysql_secret

# The random password set for the root user at Mon Oct 12 16:05:44 2015 (local time): 9frjqJqWxFsYabcd

5)、登录MySql

[root@iZ941s5i8zfZ mysql]# mysql -uroot –p9frjqJqWxFsYabcd

#设置密码为123456

mysql> SET PASSWORD = PASSWORD('123456');

mysql> exit

#重新登录验证设置root密码是否成功

[root@iZ941s5i8zfZ mysql]# mysql -uroot –p123456

6)、允许远程登陆

mysql> use mysql;

mysql> select host,user,password from user;

+-----------------------+------+-------------------------------------------+

| host                  | user | password                                  |

+-----------------------+------+-------------------------------------------+

| localhost             | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost.localdomain | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |

| 127.0.0.1             | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |

| ::1                   | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |

+-----------------------+------+-------------------------------------------+

mysql> update user set password=password('123456') where user='root';

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

mysql> flush privileges;

mysql> exit

7)、设置开机自启动

[root@iZ941s5i8zfZ mysql]# chkconfig mysql on
[root@iZ941s5i8zfZ mysql]# chkconfig --list | grep mysql

mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

5、MySQL的默认安装位置

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

/usr/share/mysql           #配置文件目录

/usr/bin                                          #相关命令目录

/etc/init.d/mysql                           #启动脚本

二、MySql中charset和collation的设置

charset和collation有多个级别的设置:服务器级、数据库级、表级、列级和连接级

1、服务器级
查看设置:show global variables like 'character_set_server';和show global variables like 'collation_server';
eg:
mysql> show global variables like 'character_set_server';
+----------------------+--------+
| Variable_name        | Value  |
+----------------------+--------+
| character_set_server | latin1 |
+----------------------+--------+
1 row in set (0.00 sec)

mysql> show global variables like 'collation_server';
+------------------+-------------------+
| Variable_name    | Value             |
+------------------+-------------------+
| collation_server | latin1_swedish_ci |
+------------------+-------------------+
1 row in set (0.00 sec)

修改设置:在配置文件(/etc/mysql/my.cnf)里设置
[mysqld] 

    character_set_server=utf8 

    collation_server=utf8_general_ci

2、数据库级
查看设置:select * from information_schema.schemata where schema_name='test';
eg:
+--------------+-------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+-------------+----------------------------+------------------------+----------+
| def          | test        | latin1                     | latin1_swedish_ci      | NULL     |
+--------------+-------------+----------------------------+------------------------+----------+
1 row in set (0.00 sec)

设置:
1)、若没有显式设置,则自动使用服务器级的配置
2)、显式设置:在创建库时指定
create database dbUtf8 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
create database db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3、表级
查看设置:show create table table_name;
eg:
mysql> show create table test_table;
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                       |
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test_table | CREATE TABLE `test_table` (
 `field_a` varchar(12) NOT NULL,
 `field_b` varchar(45) DEFAULT NULL,
 PRIMARY KEY (`field_a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

设置:
1)、若没有显式设置,则自动使用数据库级的配置
2)、显式设置:在创建表时指定
create table tableName( id int ) default charset=utf8 default collate=utf8_bin;

4、列级
查看设置:
设置: 

    1)、若没有显式设置,则自动使用表级的配置 

    2)、显式设置: 

    CREATE TABLE Table1(column1 VARCHAR(5) CHARACTER SET latin1 COLLATE latin1_german1_ci);

5、连接级别
查看设置:
1)、show variables like 'character_set_client';
#服务端使用这个编码来理解客户端发来的statements
eg:
mysql> show variables like 'character_set_client';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| character_set_client | utf8  |
+----------------------+-------+
1 row in set (0.00 sec)

2)、show variables like 'character_set_connection';
eg:
mysql> show variables like 'character_set_connection';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| character_set_connection | utf8  |
+--------------------------+-------+
1 row in set (0.00 sec)

3)、show variables like 'character_set_results';
#服务端使用这个编码回送结果集和错误信息

mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: