第一次写博客,也是刚刚开始学习mysql,总结的不好不对的地方,请大牛多多指点。
1、官网下载二进制安装包:mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz <=====安装有多种方法,之前已试过编译安装,比较麻烦,下次有心情了再总结编译安装吧。
2、解压到mysql安装目录/u01/mysql
3、创建mysql数据存放目录/data/3306/data和/data/3307/data <====打算创建2个实例,一个3306一个3307
4、分别在3306、3307目录下创建my.cnf配置文件和mysql启动脚本 <====mysql文件是自己写的一个启动、停止mysql的shell脚本
好,上面的内容都比较简单,二进制的文件,解压就能用,我们启动下3306试试看:
[root@mysql mysql]# /data/3306/mysql start <==启动 Starting MySQL... [root@mysql mysql]# ps -ef|grep mysql <===看看相关进程 root 4485 1 0 10:40 pts/0 00:00:00 /bin/sh /u01/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf mysql 5226 4485 0 10:40 pts/0 00:00:00 /u01/mysql/bin/mysqld --defaults-file=/data/3306/my.cnf --basedir=/u01/mysql --datadir=/data/3306/data --plugin-dir=/u01/mysql/lib/plugin --user=mysql --log-error=/data/3306/mysql_3306.err --open-files-limit=1024 --pid-file=/data/3306/mysqld.pid --socket=/data/3306/mysql.sock --port=3306 root 5252 3434 0 10:41 pts/0 00:00:00 grep mysql [root@mysql mysql]# [root@mysql mysql]# netstat -lntup|grep 330 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5226/mysqld [root@mysql mysql]#
6、进入数据库看看,多实例需要指定sock文件,不然会报错:
[root@mysql Desktop]# mysql <====提示需要一个sock文件 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/mysql/mysql-5.5.32/tmp/mysql.sock' (2) [root@mysql Desktop]# mysql -uroot -S /data/3306/mysql.sock <====这里报错是因为我设置了root的密码,所以登录时要指定root密码登录 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) [root@mysql Desktop]# mysql -uroot -pyuanqk -S /data/3306/mysql.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.5.60-log MySQL Community Server (GPL) <===进来了,这里显示用的是社区版5.5.60 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.06 sec) mysql>
7、没什么问题,我们创建个数据库看看,如果不清楚命令,可以使用help create database查看帮助
mysql> help create database; Name: 'CREATE DATABASE' Description: Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name CREATE DATABASE creates a database with the given name. To use this statement, you need the CREATE privilege for the database. CREATE SCHEMA is a synonym for CREATE DATABASE. URL: http://dev.mysql.com/doc/refman/5.5/en/create-database.html mysql>
-----------------也可使用show create database mysql查看已安装的数据库使用的命令----------------
mysql> show create database mysql <===这个命令还可以这样写:show create database mysql\G
-> ;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| mysql | CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
好,命令知道了,我们创建个数据库试试
mysql> create database yuanqk; <====就这么简单,比oracle简单的不止一点点
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| yuanqk |
+--------------------+
5 rows in set (0.00 sec)
mysql> show create database yuanqk
-> ;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| yuanqk | CREATE DATABASE `yuanqk` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
8、刚才这么创建数据库什么也不指定的话,默认字符集是latin1,如果是编译安装的话,可以通过DDEFAULT_CHARSET指定默认的字符集。
9、那我想创建其他字符集的数据库怎么办,也非常简单
mysql> create database yuanqk_gbk default character set gbk collate gbk_chinese_ci; <===创建个gbk的数据库 Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | yuanqk | | yuanqk_gbk | +--------------------+ 6 rows in set (0.00 sec) mysql> mysql> show databases like '%yuanqk%'; <===对了,这个地方其实可以使用like的 +---------------------+ | Database (%yuanqk%) | +---------------------+ | yuanqk | | yuanqk_gbk | +---------------------+ 2 rows in set (0.00 sec) mysql> show create database yuanqk_gbk -> ; +------------+--------------------------------------------------------------------+ | Database | Create Database | +------------+--------------------------------------------------------------------+ | yuanqk_gbk | CREATE DATABASE `yuanqk_gbk` /*!40100 DEFAULT CHARACTER SET gbk */ | +------------+--------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> mysql> create database yuanqk_utf8 default character set utf8 collate utf8_general_ci; <====创建个utf8的数据库 Query OK, 1 row affected (0.00 sec) mysql> show create database yuanqk_utf8; +-------------+----------------------------------------------------------------------+ | Database | Create Database | +-------------+----------------------------------------------------------------------+ | yuanqk_utf8 | CREATE DATABASE `yuanqk_utf8` /*!40100 DEFAULT CHARACTER SET utf8 */ | +-------------+----------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>
10、那为什么要设置不同的字符集,因为字符集不一致会导致数据库中文内容出现乱码,但是如果是编译安装的话,得指定DEXTRA_CHARSETS参数,使其支持这些字符集,否则数据库不支持,指定了也没用。
-DEXTRA_CHARSETS=gbk、gb2312、utf8、ascii
11、那在生产环境中如何选择该安装什么字符集呢,这个要看开发程序,一般使用utf8的比较多。
12、好,mysql安装就总结到这,下面学学mysql的一些操作命令再回来总结。