mysql系统数据库,mysql数据库

mysql系统数据库,mysql数据库

mysql系统数据库主要存储了一些存储MySQL服务的系统信息表。一般情况下mysql库的表都是MYASIM引擎,除非个别情况。mysql库的表的作用大致可以分为以下几类:
(1)授权系统表 (2)系统对象信息系统表 (3)日志系统表
(4)服务器端辅助系统表 (5)time zone系统表 (6)复制相关系统表
(7)optimizer相关系统表 (8)其他系统表,下面详细看一看 下面详细讲:
一:授权系统表(Grant System Tables) 授权的一些表主要有以下几个:

user: User accounts, global privileges, and other non-privilege columns.
db: Database-level privileges.
tables_priv: Table-level privileges.
columns_priv: Column-level privileges.
procs_priv: Stored procedure and function privileges.
proxies_priv: Proxy-user privileges.

基本上每一个系统表都会包含有权限列和范围列,也就包含一些授权的主要信息表。

澳门威利斯人,user表控制了用户是否能够连接,如果可以连接,则会指出此用户的权限的信息,这个表适用于实例上的所有的数据库。
db表范围列决定哪些用户可以访问哪些数据库从哪个主机。权限列决定允许的操作。在数据库级别授予的权限适用于数据库和数据库中的所有对象,如表和存储程序。
tables_priv和columns_priv表控制的权限就更为细致了,到了表级别和列级别。
procs_priv
表适用于存储例程(过程和函数)。在常规级别授予的权限只适用于一个单一的过程或函数。
proxies_priv
指出那个用户可以作为代理,或者是用户是否有权限给别的用户代理权限。
二:系统对象信息系统表 event:
event的系统表,每一次系统启动都会重新load一遍,除非指定
–skip-grant-tables参数启动,不然都是要load的 func:
存放关于用户定义的方法,除非指定
–skip-grant-tables参数启动,不然每一次系统启动都会重新load一遍。
plugin: 存放有关服务器插件的相关信息,除非指定
–skip-grant-tables参数启动,不然每一次系统启动都会重新load一遍。默认的存储引擎是INNODB
proc:存放存储过程和方法的系统表。
三:日志系统表,一般情况下我看了看都是NULL的

general_log: The general query log table.
slow_log: The slow query log table.

这两张系统表可以将慢日志和日志按照表格的形式存储下来,但是相对来说带来对性能和存储空间的使用更大,一般生产环境我们都建议设置为外部文件。

四:服务器端辅助系统表

help_category: Information about help categories.
help_keyword: Keywords associated with help topics.
help_relation: Mappings between help keywords and topics.
help_topic: Help topic contents.

这些表存储了mysql帮助的基本信息,我们都可以用HELP +列
来查看具体的帮助信息。

例如: 五:time zone的相关系统表

time_zone: Time zone IDs and whether they use leap seconds.
time_zone_leap_second: When leap seconds occur.
time_zone_name: Mappings between time zone IDs and names.
time_zone_transition, time_zone_transition_type: Time zone descriptions.

设置时区用以下方式:SET GLOBAL time_zone = timezone;

可以用以下方式查看:SELECT @@global.time_zone, @@session.time_zone;
六:复制相关的表 gtid_executed: 存储了复制执行的GTID的信息。
ndb_binlog_index: slave_master_info, slave_relay_log_info,
slave_worker_info: 只有mysql作为slave的时候才会存储相关信息
七:optimizer相关系统表 innodb_index_stats, innodb_table_stats:
显示的是索引的信息 Table 15.3 Columns of innodb_table_stats

Column name Description
database_name Database name
table_name Table name, partition name, or subpartition name
last_update A timestamp indicating the last time that InnoDB updated this row
n_rows The number of rows in the table
clustered_index_size The size of the primary index, in pages
sum_of_other_index_sizes The total size of other (non-primary) indexes, in pages

Table 15.4 Columns of innodb_index_stats

Column name Description
database_name Database name
table_name Table name, partition name, or subpartition name
index_name Index name
last_update A timestamp indicating the last time that InnoDB updated this row
stat_name The name of the statistic, whose value is reported in the stat_value column
stat_value The value of the statistic that is named in stat_name column
sample_size The number of pages sampled for the estimate provided in the stat_value column
stat_description Description of the statistic that is named in the stat_name column

两个表的last_update
这列都记录了最后一次索引更改的时间。而且这两张表都是可以手动进行更新的,修改这两个表可以强制某个查询的执行计划,或者测试替代计划,优点是不需要修改数据库相关信息。更新统计信息需要使用FLUSH
TABLE tbl_name来更新统计信息。可以查询某张表的索引信息:

SELECT SUM(stat_value) pages, index_name, SUM(stat_value)*@@innodb_page_size size FROM mysql.innodb_index_stats WHERE table_name='t1' AND stat_name = 'size' GROUP BY index_name;
SELECT index_name, stat_name, stat_value, stat_description FROM mysql.innodb_index_stats WHERE table_name like 't1';
SELECT index_name, stat_name, stat_value, stat_description FROM mysql.innodb_index_stats WHERE table_name like 't1' AND stat_name LIKE 'n_diff%';

server_cost:服务器操作的成本估算信息

engine_cost: 指定存储引擎的成本估算信息 FLUSH
OPTIMIZER_COSTS命令可以重新开始读取记录信息。 八:其他的一些系统表
audit_log_filter, audit_log_user:
这两个表提供的是mysql审计相关的信息,如果没有安装的话是没有这两个表的。
firewall_users, firewall_whitelist: 要安装mysql企业防火墙才可以使用。
servers: 主要是 FEDERATED 引擎使用。不做介绍了。  
这是一个mysql系统库的大概介绍,感觉比较需要我们掌握的就是关于授权,系统表,日志表,优化表和复制相关的表。后面可以看一看mysql的日志类型等和优化相关的方面深入了解一下。
       

mysql系统数据库主要存储了一些存储MySQL服务的系统信息表。一般情况下mysql库的表都是MYASIM引擎,除非个别情…

1、首先关闭linux的防火墙,执行命令

chkconfig iptables off

2、从mysql官网上下载自己适合的mysql版本

澳门威利斯人 1

 

澳门威利斯人 2

 

 澳门威利斯人 3

 

 澳门威利斯人 4

澳门威利斯人 5

3、下载后的mysql文件

mysql-5.6.40-linux-glibc2.12-i686.tar.gz

 

 将下载好的mysql压缩文件放置在linux的/usr/local文件夹下,解压该压缩文件

 tar -zxvf mysql-5.6.40-linux-glibc2.12-i686.tar.gz

 

将解压后的文件重命名为mysql

mv mysql-5.6.40-linux-glibc2.12-i686 mysql

 

4、创建mysql用户组及用户

groupadd mysql
useradd -r -g mysql mysql

 

5、进入到mysql目录,执行添加MySQL配置的操作

cp support-files/my-medium.cnf /etc/my.cnf
或:
cp support-files/my-default.cnf /etc/my.cnf

 

是否覆盖?按y 回车

6、编辑/etc/my.cnf文件;

vi /etc/my.cnf

 

在my.cnf文件中添加或者修改相关配置,更改完成后保存退出

 1 # For advice on how to change settings please see
 2 # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
 3 # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
 4 # *** default location during install, and will be replaced if you
 5 # *** upgrade to a newer version of MySQL.
 6 
 7 [mysqld]
 8 
 9 # Remove leading # and set to the amount of RAM for the most important data
10 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
11 # innodb_buffer_pool_size = 128M
12 
13 # Remove leading # to turn on a very important data integrity option: logging
14 # changes to the binary log between backups.
15 # log_bin
16 
17 # These are commonly set, remove the # and set as required.
18 basedir = /usr/local/mysql
19 datadir = /usr/local/mysql/data
20 port = 3306
21 # server_id = .....
22 socket = /tmp/mysql.sock
23 character-set-server = utf8
24 skip-name-resolve
25 log-err = /usr/local/mysql/data/error.log
26 pid-file = /usr/local/mysql/data/mysql.pid
27 
28 # Remove leading # to set options mainly useful for reporting servers.
29 # The server defaults are faster for transactions and fast SELECTs.
30 # Adjust sizes as needed, experiment to find the optimal values.
31 # join_buffer_size = 128M
32 # sort_buffer_size = 2M
33 # read_rnd_buffer_size = 2M 
34 
35 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

7、在mysql当前目录下设定目录的访问权限(注意后面的小点,表示当前目录)

chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

 

8、初始化数据(在mysql/bin或者mysql/scripts下有个 mysql_install_db
可执行文件初始化数据库),进入mysql/bin或者mysql/scripts目录下,执行下面命令

./mysql_install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp

 

9、启动mysql,进入/usr/local/mysql/bin目录,执行下面命令

./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &

 

注意,如果光标停留在屏幕上,表示启动成功,需要我们先关闭shell终端,再开启一个新的shell终端,不要执行退出操作。如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题. 

10、设置开机启动,新开启shell中断后,进入mysql目录,执行下面命令

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

chmod 700 /etc/init.d/mysql
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
chown mysql:mysql -R /usr/local/mysql/

 

重启linux

reboot

 

查看mysql状态

service mysqld status

 

11、添加远程访问权限

  (1)、添加mysql命令

ln  -s /usr/local/mysql/bin/mysql  /usr/bin  (mysql的安装路径)

 

  (2)、更改访问权限

登录mysql,执行下面命令
mysql -uroot -p 
密码为空直接回车,运行以下两条命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'duan' with grant option;
Flush privileges;

 

退出mysql

exit

重启linux,就完成了

reboot

 

注:本机访问mysql,root账户默认是没有密码的,端口号默认3306,如果需要修改root账户密码,在/usr/local/mysql/bin目录下,执行下面命令

./mysqladmin -h 127.0.0.1 -P3306 -uroot password 'duan'exit

 

相关文章