MySQL读书笔记-安装初始化操作
2016-08-24 23:28
295 查看
导言:本文主要记录MySQL在Linux服务器上安装时,一些关键操作和步骤。
优点:简单
缺点:不灵活,缺少个性化设置
二进制
优点:优化版本
缺点:安装比RPM麻烦
源代码
优点:个性化
缺点:需要知道如何构建
进入MySQL客户端,执行以下命令来改变root用户的密码。
在Linux中启动MySQL
负责启动MySQL守护进程的脚本名为
在Linux中停止MySQL
虽然MySQL服务器守护进程只能由拥有必要文件系统权限的用户启动,却可以由拥有MySQL权限数据库中指定的适当权限的用户停止。此权限一般只留给MySQL root用户(注意,不要和操作系统的root用户混淆)。
查看MySQL的配置参数
管理连接负载
优化的MySQL服务器能够同时处理许多连接,每个连接都必须由MySQL主线程接收并委托给一个新线程,但是这个任务不是立即就能完成。
设置数据目录位置
将MySQL数据目录放在非标准的位置(例如,另一个磁盘分区)是一种常见的做法。通过
注意:需要将mysql表的定义(存储在DATADIR/mysql中)复制或移动到此新位置,因为MySQL的数据库以文件形式存储,所以可以使用通常的操作系统命令(例如,mv和cp)来完成。
设置默认的存储引擎
指定如下选项之后,所有后续表的创建将自动使用MEMORY引擎,除非指定了其他表引擎。
自动执行SQL命令
设置最大允许的并发连接数
设置MySQL的通信端口
默认情况下,MySQL在端口3306通信,但是,可以通过port参数重新配置以监听其他任何端口。
/etc/my.cnf是全局配置文件
DATADIR/my.cnf是服务器特定的配置
–defaults-extra-file=name,这个文件由给出的文件名指定,包括绝对路径
~/.my.cnf是用户特定的配置
MySQL在启动时会尝试从上述各个位置读取配置文件,如果存在多个配置文件,后面读取的参数将覆盖之前的参数。虽然可以创建自己的配置文件,不过应当基于5个预配置的my.cnf文件之一来创建,这个5个文件都由MySQL分发包提供。这些模板位于INSTALL-DIR/support-files。
非交互模式下的一个例子:监视服务器上发生的慢查询数量
安装
RPM优点:简单
缺点:不灵活,缺少个性化设置
二进制
优点:优化版本
缺点:安装比RPM麻烦
源代码
优点:个性化
缺点:需要知道如何构建
# 创建必要的组和拥有者 groupadd mysql useradd -g mysql mysql # 下载解压 cd /usr/src gunzip < /usr/src/mysql-VERSION.tar.gz | tar xvf - cd mysql-VERSION # 配置,生成并安装 ./configure --prefix=/usr/local/mysql [other-configuration-flags] make make install # 将MySQL配置文件(my.cnf)复制到其典型位置,并设置其所有关系 cp support-files/my-medium.cnf /etc/my.cnf chown -R mysql . chgrp -R mysql . # 安装MySQL数据库 scripts/mysql_install_db --user=mysql # 更新安装权限 chown -R root . chown -R mysql data
设置MySQL管理员密码
默认情况下,root用户的密码为空,在安装完成后需要立刻设置root密码。mysql -u root mysql
进入MySQL客户端,执行以下命令来改变root用户的密码。
mysql> SET PASSWORD FOR root@localhost=PASSWORD('secret');
启动和停止MySQL
MySQL服务器守护进程通过位于INSTALL-DIR/bin目录的一个程序来控制。在Linux中启动MySQL
负责启动MySQL守护进程的脚本名为
mysqld_safe,位于INSTALL-DIR/bin目录。此脚本只能由拥有足够执行权限的用户执行,一般为root或mysql组的成员。mysqld_safe脚本实际上是包装mysqld服务器守护进程的包装器,提供了直接调用mysqld所没有的特性,如运行时日志和出现错误时的自动重启。
./bin/mysqld_safe --user=mysql &
在Linux中停止MySQL
虽然MySQL服务器守护进程只能由拥有必要文件系统权限的用户启动,却可以由拥有MySQL权限数据库中指定的适当权限的用户停止。此权限一般只留给MySQL root用户(注意,不要和操作系统的root用户混淆)。
mysqladmin -u root -p shutdown Enter password: ******
配置和优化MySQL
除非特别指定,在每次启动MySQL服务器守护进程时使用一组默认的配置设置。下面介绍一些常用的配置和优化。查看MySQL的配置参数
mysqladmin -u root -p variables # 或者登陆MySQL客户端后执行 mysql> SHOW VARIABLES; # 通过LIKE子句查看单个变量的值,例如,查看默认的存储引擎是什么 mysql> SHOW VARIABLES LIKE 'storage_engine'; +----------------+--------+ | Variable_name | Value | +----------------+--------+ | storage_engine | InnoDB | +----------------+--------+ 1 row in set (0.00 sec) # 查看一些非常有意义的统计信息,也可以使用LIKE SHOW STATUS
管理连接负载
优化的MySQL服务器能够同时处理许多连接,每个连接都必须由MySQL主线程接收并委托给一个新线程,但是这个任务不是立即就能完成。
back_log参数确定在主线程处理新连接时允许排队的连接数,默认值为50。
设置数据目录位置
将MySQL数据目录放在非标准的位置(例如,另一个磁盘分区)是一种常见的做法。通过
datadir选项可以重新定义此路径。
./bin/mysqld_safe --datadir=/data/mysql --user=mysql &
注意:需要将mysql表的定义(存储在DATADIR/mysql中)复制或移动到此新位置,因为MySQL的数据库以文件形式存储,所以可以使用通常的操作系统命令(例如,mv和cp)来完成。
设置默认的存储引擎
指定如下选项之后,所有后续表的创建将自动使用MEMORY引擎,除非指定了其他表引擎。
./bin/mysqld_safe --default-table-type=memory
自动执行SQL命令
./bin/mysqld_safe --init_file=/usr/local/mysql/scripts/mysqlinitcmds.sql &
设置最大允许的并发连接数
max_connections参数确定并发数据库连接的最大数,默认设置为100。
mysql> show status like '%max%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | Innodb_row_lock_time_max | 0 | | Max_used_connections | 7 | | Tc_log_max_pages_used | 0 | +--------------------------+-------+ 3 rows in set (0.00 sec)
设置MySQL的通信端口
默认情况下,MySQL在端口3306通信,但是,可以通过port参数重新配置以监听其他任何端口。
my.cnf文件
除了通过mysqld_safe启动MySQL守护进程时通过参数选项来修改MySQL配置,还可以通过修改my.cnf配置来实现配置修改。启动时,MySQL将在一些目录中查找my.cnf文件,每个目录将确定在其中声明的参数的作用域。/etc/my.cnf是全局配置文件
DATADIR/my.cnf是服务器特定的配置
–defaults-extra-file=name,这个文件由给出的文件名指定,包括绝对路径
~/.my.cnf是用户特定的配置
MySQL在启动时会尝试从上述各个位置读取配置文件,如果存在多个配置文件,后面读取的参数将覆盖之前的参数。虽然可以创建自己的配置文件,不过应当基于5个预配置的my.cnf文件之一来创建,这个5个文件都由MySQL分发包提供。这些模板位于INSTALL-DIR/support-files。
MySQL客户端
MySQL提供了很多使用的客户端工具。mysql客户端
mysql客户端可以采用交互模式和
非交互模式。
# 交互模式 # 注意,密码不要包含在命令行中,否则会被记录到历史命令里,有安全风险 mysql -h hostname -u username -p -D databasename # 非交互模式(批处理模式) # 向数据库导入模式和数据,通过<操作符使mysql客户端使用/path/to/file的内容来执行文本文件中的SQL命令 mysql [options] < /path/to/file
非交互模式下的一个例子:监视服务器上发生的慢查询数量
# mysqlmon.sql SHOW STATUS LIKE "slow_queries"; # 类似下面的输出 mysql> SHOW STATUS LIKE "slow_queries"; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Slow_queries | 0 | +---------------+-------+ 1 row in set (0.01 sec) # 在crontab中执行如下命令 0 3 * * * mysql -u monitor < mysqlmon.sql | mail -s "Slow queries" gerry@example.com
mysqladmin客户端
此客户端用于完成一些管理任务。比如,创建和删除数据库,监视服务器状态,关闭MySQL服务器守护进程等。# 查看服务器变量及其值 root@gerryyang:~# mysqladmin -u root -p variables Enter password: +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Variable_name | Value | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | autocommit | ON | | automatic_sp_privileges | ON | | back_log | 50 ...... +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ # 使用processlist命令显示所有正在运行的MySQL服务器进程列表 root@gerryyang:~# mysqladmin -u root -p processlist Enter password: +-------+------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-------+------+-----------+----+---------+------+-------+------------------+ | 95327 | root | localhost | | Sleep | 744 | | | | 95330 | root | localhost | | Query | 0 | | show processlist | +-------+------+-----------+----+---------+------+-------+------------------+
mysqldump
此客户端用来从MySQL服务器中导出现有的表数据或
表结构,或者二者都导出。
# 将本地服务器中所有数据库的表结构转储到文件output.sql mysqldump -u root -p --all-databases --no-data > output.sql # 转储一个数据库corporate的数据 mysqldump -u root -p --no-create-info corporate > output.sql # 同时转储corporate数据库中两个表的结构和数据 # 在每个`CREATE`语句前都包括了`DROP TABLE`语句,当需要重复地重新创建存在的数据库时特别有用,可以防止尝试创建已经存在的表导致的错误 mysqldump -u root -p --add-drop-table corporate product staff > output.sql
相关文章推荐
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- 新安装的金蝶K3软件,初始化后,在基础资料中对于币别,科目,部门,客户等资料均无法新增,无法引出,等操作,K3CASysSet.dll
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- mariaDB安装完成后设置root密码等初始化操作
- MariaDB数据库安装完需要初始化操作
- 虚拟机安装完成以后的初始化操作笔记
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)2005-12-23更新
- mariaDB安装完成后设置root密码等初始化操作
- mysql安装初始化操作报错“FATAL ERROR: Could not find mysqld”
- MariaDB安装、初始化及常用操作
- mariaDB安装完成后设置root密码等初始化操作
- MARIADB安装、初始化及常用操作
- MariaDB安装、初始化及常用操作
- mysql 第一次安装成功初始化密码操作;
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- Centos7安装后初始化操作
- mariaDB安装完成后设置root密码等初始化操作
- "某个程序安装已在安装计算机上创建挂起的文件操作" 解决办法 另解
- Red Hat 9.0安装Apache的操作步骤