MySQL学习记录-适用版本mariadb5.5(一)

上一篇文章简介了wordpress的安装配置和使用,wordpress有丰富的插件,这两天找到了可以编写代码的插件,就可以对MySQL的安装配置和基本使用方法做一下记录了。

1.MySQL的安装

目前CentOS支持MySQL的开源分支MariaDB的直接安装

【yum install mariadb* -y】

2.MySQL的用户添加和登录权限设置

【mysql_secure_installation】

命令可以设置root的登录数据的密码以及其他的基础设置,不进行root密码设置的话,MySQL是可以免密登录的,设置密码后登录命令为

【mysql -uroot -p'password'】

进入数据库后,可以进行用户管理操作,首先是创建用户

【grant all privileges on *.* to username@"%" identified by "password"】

此命令包含的权限非常多,all privileges代表的是全部数据库操作权限,增删查改等(insert/delete/select/update),这里可以不给全部的权限,,*.*代表MySQL中的所有数据库所有表,前一个*代表库名,后一个*代表表名,%是mysql的通配符之一,这里表示任意访问来源的IP,这里假设用户名git密码password的用户需从192.168.100.100主机远程访问gogs数据库,只给查询/插入的权限,后来发现insert操作权限有风险,需要删除该权限,则mysql语句分别为

【grant select,insert gogs.* to git@"192.168.100.100" identified "password"】

【revoke insert on what from git】

以上语句只要改变数据库,用户名,地址和密码中的一项,就代表在mysql数据库中的user表添加一条记录,这些信息都可以select查询到,要禁用以上的权限设置,直接在user表中删除即可,查询和删除的语句分别为

【select user,host from user】

【delete from user where user="git" and host="%"】

【flush privileges】刷新MySQL的系统权限相关表,以上的权限设置才会生效。以上涉及到的远程访问都是基于开放了3306端口前提下的。

3.MySQL数据库表的创建

我的工作接触到的数据库表的创建有zabbix和gogs,这两个软件都需要用提供的脚本进行数据库表的创建。zabbix需要先添加一个名为zabbix的数据库,再执行脚本内的sql语句

【create database zabbix charset 'utf8'】

【grant all privileges on zabbix.* to zabbix@"%" identified by "password"】

【flush privileges】

【mysql -uzabbix -p'password' zabbix < /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql】

zabbix数据库的库表结构在后续我会专门写一篇介绍zabbix的安装使用的文章中再详细讲解,gogs的数据库表结构导入也是一样的操作。此处的重点在于charset 'utf8'这个字符属性设置,在MySQL数据中如果不能设置好字符属性会出现数据库乱码问题。首先需要熟悉一下以下三个查询语句

【show character set】

这个命令主要是列举编码方式,简介,字符比较排序的默认规则和最大字符长度。比较规则的后缀会有ci和cs的标识,分别代表case insensitive和case sensitive,大小写不敏感和大小写敏感,前者不考虑大小写。还有ai标识,accent insensitive,不考虑发音,第一声/第二声/第三声/第四声

MariaDB [(none)]> show character set;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |

【status】

MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 5.5.44-MariaDB, for Linux (x86_64) using readline 

Connection id:		24
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server:			MariaDB
Server version:		5.5.44-MariaDB MariaDB Server
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	latin1
Db     characterset:	latin1
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/lib/mysql/mysql.sock
Uptime:			3 days 3 hours 54 min 29 sec

Threads: 1  Questions: 140  Slow queries: 0  Opens: 75  Flush tables

这里出现的connection就是连接器,用于client和server之间进行编码转换的,这三者存在一个循环。我以client GBK/server UTF8编码为例简单解释一下,client_start(GBK)-->connection(GBK->UTF8)-->server(UTF8)-->connection(UTF8->GBK)-->client_result(GBK)。

MariaDB [(none)]> show variables like '%char%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
MySQL数据库相对于其他数据库灵活度高,允许表中不同字段都能有不同的编码
方式,因此需要灵活应用set语句来进行字符编码的设定。
MySQL学习第一篇就先到这里了,下面一篇我会结合我做过的zabbix监控数据自
动处理工作,做库表的设计和增删查改的记录。

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇