FreeBSD 下 MySQL 安装与基本维护

23 篇文章 1 订阅
11 篇文章 0 订阅

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

 

原文 blog.csdn.net/joyous/article/details/47282129

 

FreeBSD 下 MySQL 的安装(portsnap 源码安装)

 

 

更新 ports 树,以便安装最新版本,在类UNIX社区,这是传统的安装形式之一。
 
1.下载最新的 ports包更新ports树,如果无需更新可从第3步开始。
# portsnap fetch
或者跳过第2步一次完成释放
# portsnap fetch extract
2.将下载好的 ports包释放到 /usr/ports。
# portsnap extract
3.进入 ports 的 mysql 目录
# cd /usr/ports/databases/mysql56-server
4.输入编译参数
# make with_xcharse=yes build_optimized=yes build_static=yes insatll clean

 

 

FreeBSD 下 MySQL pkg 安装

# pkg install mysql57

该命令将以二进制方式进行安装,较 portsnap 安装快得多。

 

 

安装完成后将得到以上提示,请留意默认密码文件(\root\.mysql_secret)以及 my.cnf 配置文件位置以及重定义位置的方式。

 

编译无误并完成后,向 rc.conf 添加 mysql_enable="YES" 可以让 mysql 在 OS 启动时启动

/usr/local/etc/rc.d/mysql-server 命令可以直接操作 mysql 启动或停止。

 

升级安装

若遇升级安装,在软件升级完成后,应执行以下命令,确保数据库符合当然服务所支持的版本。

# mysql_upgrade -u root -p --force

# mysql-server restart

 

解决中文问题

默认情况下 mysql 服务器是拉丁字符集,mysql 服务端控制台输入 show variables like 'character%' 命令查看服务器字符集。

解决这个问题,可以编辑服务端 my.cnf 文件,mysql 5.7 的 my.cnf 位置在 /usr/local/etc/mysql,前一截图已说明。

在 [mysqld] 下添加一行 character_set_server=utf8,然后保存。

重启 mysql 服务器,再次查看环境参数。

已经是 utf-8,这时可以很好的处理中文了,而客户端同样也需要添加 character_set_client=utf8 以保持一致防止编码错误。

 

my.cnf 维护

允许远程维护前,先确认 my.cnf 内的设置允许远程地址访问。

bind-address = 0.0.0.0

 

// 不区分大小写

lower_case_table_names = 1

// 区分大小写

lower_case_table_names = 2

 

设定值详细描述

ValueMeaning
0Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement. Name comparisons are case sensitive. You should not set this variable to 0 if you are running MySQL on a system that has case-insensitive file names (such as Windows or OS X). If you force this variable to 0 with --lower-case-table-names=0 on a case-insensitive file system and access MyISAM tablenames using different lettercases, index corruption may result.
1Table names are stored in lowercase on disk and name comparisons are not case sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases.
2Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on file systems that are not case sensitive! InnoDB table names are stored in lowercase, as for lower_case_table_names=1.

 

0: 如果在大小写不敏感的文件系统上使用 --lower-case-table-names=0 强制设置,并且使用不同的大小写访问 MyISAM 表名,会导错误的索引结果。
1:表名以小写形式存储在磁盘上,名称比较不区分大小写。MySQL 将所有的表名转换为小写字母存储和查找。这种行为也适用于数据库名称和表的别名。
2:表名和数据库名在磁盘上使用 CREATE TABLE 或 CREATE DATABASE 语句指定的大小写进行保存,但 MySQL 将以小写格式查找。

 

// 最大连接数,根据情况修改,默认大概是150

max_connections = 2000

 

号维护

以 root 登录 mysql
# mysql -u root -p password

 

mysqladmin 命令
修改 root 的密码为 123456 则输入,之后会提示输入原密码,然后回车即可。
mysqladmin -u root -p password 123456

允许 root 账号从 10.0.0.2 IP 访问,并设置密码为 123456
mysql>grant all privileges on *.* to 'root'@'10.0.0.2' identified by '123456' with grant option;   
mysql>flush privileges;

让 root 账号可以被远程访问,并设置密码 123456
mysql>grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql>flush privileges;

修改密码方法 1,基本方法
mysql>set password =password('newpassword');
mysql>flush privileges;

#修改 root 的 localhost 的密码方法, 2,使用 grant 语句 
mysql>grant all on *.* to 'root'@'localhost' identified by 'newpassword' with grant option;
mysql>flush privileges;


#修改密码方法 3
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE;
mysql>flush privileges;

修改方法4
mysql>grant all on mysql.* to root@'%' identified by '123456';
mysql>flush privileges;

修改密码方法 4, 直接修改表
mysql>use mysql;
mysql>update user set password=password('newpassword') where user='root'; 
mysql>flush privileges;

 

允许 root 远程访问

mysql>use mysql;
mysql>update user set host = '%' where user ='root';

 

添加或者删除字段

alter table `table` add `field` int;
alter table `table` drop column `field`;

 

数据表重构造

 

主键环境下批量删表:

在批量删除表时,往往有主键关联,难以顺利删除,可以暂时关闭主键检查,再执行批量删除时,将不再发生错误,但这个操作应该仅仅用于在开发环境重建表时使用,生产环境慎用!!!之后别忘了改回来。

set FOREIGN_KEY_CHECKS = 0;  #解除

set FOREIGN_KEY_CHECKS = 1;  #开启

 

数据迁移

 

升级数据库引擎或者迁移数据时,若遇提示 performance_schema.session_variables,命令行执行以下命令,升级数据库 DATA 信息即可。

mysql_upgrade -u root -p --force

或者也可以使用兼容模式,使之兼容某个版本,使用如下命令:

mysql -u app -p
mysql> set @@global.show_compatibility_56=ON;

 

如果需要了解 FreeBSD 平台 php 安装的,可以查看 http://blog.csdn.net/joyous/article/details/51301642 这篇博文。

 

数据备份,将 editor 备份到 /usr/local/editor.20161208.sql 文件。

mysqldump -uroot -p editor > /usr/local/editor.20161220.sql
或者不带 GTID 标记导出
mysqldump -uroot -p --set-gtid-purged=OFF editor > /usr/local/editor.20161220.sql

 

数据恢复,将 /usr/local/editor.20161208.sql 恢复到 editor。

mysql -uroot -p editor < /usr/local/editor.20161208.sql

 

原文 blog.csdn.net/joyous/article/details/47282129

Q群讨论:236201801

 

参考资料

http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
http://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值