MySql记录一(从安装开始)

来源:互联网 发布:国际网络征婚骗局案例 编辑:程序博客网 时间:2024/05/22 10:52

最近因换到创业型公司,环境搭建都是重新搭起,我对这方面又比较感兴趣,所以像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): 9frjqJqWxFsY
abcd

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)

0 0
原创粉丝点击