ubuntu12.04安装mysql5.5

原文链接 :

Ubuntu 12.04 配置MySQL 



在Ubuntu12.04 之前的版本中配置MySQL数据库非常方便,只需要运行3条命令即可:

       sudo apt-get install mysql-server

       sudo apt-get install mysql-admin

       sudo apt-get install mysql-query-browser

     今天安装了Ubuntu 12.04 ,mysql-server可以安装成功,但是mysql-admin却找到不到。原来Ubuntu 12.04已经全面升级了MySQL数据库,mysql-server已经升级到5.5.22,MySQL的图形界面mysql-admin和mysql-query-browser也升级到mysql-workbench。

       所以,只要执行两条命令即可:

      sudo apt-get install mysql-server

      sudo apt-get install mysql-workbench

使用注意:

删除外键

建立的时候:

alter table tb_user_role

add constraint fk_user_id_tb_user_role

foreign key(`user_id`)  其他省略...

删除的时候:

alter table tb_user_role

drop foreign key fk_user_id_tb_user_role


安装完原来还得配置,为什么linux的软件就不能零配置呢?

1 配置文件在/etc/mysql/my.cnf

打开它,注释掉

bind-address = 127.0.0.1

2 字符集,建数据库的时候统一全部用utf8

如何配置mysql默认的字符集,以后找到再补上

注意是5.5以后才是:

[mysqld]

.....

character-set-server=utf8

collation-server=utf8_general_ci


utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法,一些字符还是不能支持。
utf8_unicode_ci不能完全支持组合的记号。
utf8_general_ci是一个遗留的 校对规则,不支持扩展,它仅能够在字符之间进行逐个比较。这意味着utf8_general_ci校对规则进行的比较速度很快,但是与使用 utf8_unicode_ci的校对规则相比,比较正确性较差。
应用上的差别
1、对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。
2、utf8_general_ci也适用与德语和法语,除了‘?’等于‘s’,而不是‘ss’之外。如果你的应用能够接受这些,那么应该使用 utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。

用一句话概况上面这段话:utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了
参考:
http://www.diybl.com/course/7_databases/mysql/myxl/20100721/474574.html


MySQL(5.5以前,之后的不一定适用)字符集修改命令

1.修改服务器级 a. 临时更改: mysql>SET GLOBAL character_set_server=utf8; b. 永久更改:shell>vi /etc/my.cnf[mysqld]default-character-set=utf8

2.修改数据库级 a. 临时更改: mysql>SET GLOBAL character_set_database=utf8; b. 永久更改:改了服务器级就可以了

3.修改表级 mysql>ALTER TABLE table_name DEFAULT CHARSET utf8; 更改了后永久生效

4.修改列级修改示例: mysql>ALTER TABLE `products` CHANGE `products_model` `products_model` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更改了后永久生效 5.更改连接字符集 a. 临时更改:mysql> SET NAMES utf8;b. 永久更改: shell>vi /etc/my.cnf在[client]中增加:default-character-set=utf8





2 解决大小写问题

MySQL在Linux下数据库名、表名、列名、别名大小写规则: 
   1、数据库名与表名是严格区分大小写 

   2、表的别名是严格区分大小写 

   3、列名与列的别名在所有的情况下均是忽略大小写的 

   4、变量名也是严格区分大小写的 

注意: 

A、Linux下MySQL安装完后默认:区分表名的大小写,不区分列名的大小写 

B、改变表名的大小写区分规则的方法:用root帐号登录,在/etc/my.cnf 或 /etc/mysql/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MySQL服务,若设置成功,则不再区分表名的大小写。 

注意:如果在/etc或/etc/mysql找不到my.cnf ,需要从其他地方拷贝过来,因为使用rpm安装mysql时,需要手工拷贝my.cnf。具体操作: 

到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下: 

[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 

其中: 

my-small.cnf是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。 
my-medium.cnf是为中等规模的数据库而设计的。 

my-large.cnf是为专用于一个SQL数据库的计算机而设计的。 

my-huge.cnf是为企业中的数据库而设计的。 

[ Windows ] 

MySQL在Windows下数据库名、表名、列名、别名都不区分大小写。 


如果想大小写区分则在my.ini 里面的mysqld部分 


加入 lower_case_table_names=0 


注意:Windows中即使改了这个设置,在查询时还是不会区分大小写。只是在导入导出时会对大小写有区别。




常见错误:


http://blog.chinaunix.net/uid-7589639-id-3396287.html

Mysql常见的几个错误问题及解决方法:
1.问题: mysql DNS反解:skip-name-resolve
 
错误日志有类似警告:

点击(此处)折叠或打开

  1. 120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known
  2. 120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service not known
  3. 120119 16:26:04 [Warning] IP address '192.168.1.17' could not be resolved: Name or service not known

通过show processlist发现大量类似如下的连接:


点击(此处)折叠或打开

  1. |592|unauthenticated user|192.168.1.10:35320|NULL|Connect| |login|NULL|
  2. |593|unauthenticated user|192.168.1.14:35321|NULL|Connect| |login|NULL|
  3. |594|unauthenticated user|192.168.1.17:35322|NULL|Connect| |login|NULL|

 
skip-name-resolve 参数的作用:不再进行反解析(ip不反解成域名),这样可以加快数据库的反应时间。
 
修改配置文件添加并需要重启:

点击(此处)折叠或打开

  1. [mysqld]
  2. skip-name-resolve
 
2.问题错误日志:Error: Can't create a new thread (errno 12)

数据库服务器问题,数据库操作无法创建新线程。一般是有以下3个方面的原因:
1)、MySQL 线程开得太多。
2)、服务器系统内存溢出。
3)、环境软件损坏或系统损坏。
 
【问题解决】


点击(此处)折叠或打开

  1. 1)进入 phpmyadmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改 max_connections 的值。适当的改小一点。
  2. 2)联系服务器管理员检查服务器的内存和系统是否正常,如果服务器内存紧张,请检查一下哪些进程消耗了服务器的内存,同时考虑是否增加服务器的内存来提高整个系统的负载能力。
  3. 3)mysql版本更改为稳定版本
  4. 4)优化网站程序的sql等等

 
 
3.  操作报错:ERROR 1010 (HY000): Error dropping database


点击(此处)折叠或打开

  1. mysql> drop database xjtrace;
  2. ERROR 1010 (HY000): Error dropping database (can't rmdir './xjtrace/


在做数据库删除时出现这种提示,其原因是在database下面含有自己放进去的文件,譬如*.txt文件或*.sql文件等,只要进去把这个文件删了在执行。


点击(此处)折叠或打开

  1. mysql>drop database xjtrace;
  2. Query OK, 0 rows affected (0.00 sec)

果断删除即可!!
 
4.导出数据很快,导入到新库时却很慢:
 
MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅400万条记录,竟用了近2个小时。在导出时合理使用几个参数,可以大大加快导入的速度。
 
-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行
注意:max_allowed_packet和net_buffer_length不能比目标数据库的配置数值大,否则可能出错。
 
首先确定目标库的参数值

点击(此处)折叠或打开

  1. mysql> show variables like 'max_allowed_packet';
  2. +--------------------+---------+
  3. | Variable_name | Value |
  4. +--------------------+---------+
  5. | max_allowed_packet | 1048576 |
  6. +--------------------+---------+
  7. 1 row in set (0.00 sec)

  8. mysql> show variables like 'net_buffer_length';

  9. +-------------------+-------+
  10. | Variable_name | Value |
  11. +-------------------+-------+
  12. | net_buffer_length | 16384 |
  13. +-------------------+-------+
  14. 1 row in set (0.00 sec)


根据参数值书写mysqldump命令,如:

mysql>mysqldump -uroot -p   数据库名 -e --max_allowed_packet=1048576 -net_buffer_length=16384 > SQL文件
 
例如:

点击(此处)折叠或打开

  1. mysql> mysqldump -uroot -p xjtrace -e --max_allowed_packet=1048576 --net_buffer_length=16384 >xjtrace_data_`date +%F`.sql

 
之前2小时才能导入的sql现在几十秒就可以完成了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值