ubuntu12.04安装mysql5.5

本文介绍在Ubuntu12.04系统中安装和配置MySQL数据库的方法,包括安装步骤、配置文件编辑、字符集设置等内容,并提供了解决常见问题的方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接 :

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现在几十秒就可以完成了。



<think>好的,我现在需要在Ubuntu系统上安装MySQL数据库。首先,我应该回忆一下之前学过的步骤,或者查找相关的资料。记得用户提到了几个引用,可能需要参考这些内容。 首先,用户提供的引用[2]提到不同Ubuntu版本对应的默认MySQL版本。比如Ubuntu 20.04MySQL 8.0,18.04和16.045.7,14.0412.045.5。所以用户需要先确定自己的Ubuntu版本,然后才能知道将要安装哪个版本MySQL。这可能影响到后续的配置,因为不同版本可能有不同的设置方式。 接下来,引用[1]和[3]提到安装MySQL的方法。引用[3]中提到了安装客户端client的命令是sudo apt install mysql-client,但可能还需要安装服务器端。通常,安装MySQL服务器可能需要使用sudo apt install mysql-server,或者直接安装默认版本。引用[4]指出在安装后需要修改root密码,因为初始密码是自动生成的,可能需要通过查看debian.cnf文件来获取临时密码。 所以步骤大概是这样的:首先更新软件包列表,然后安装MySQL服务器。安装过程中可能会提示设置root密码,但根据引用[4],可能有些情况下密码是自动生成的,需要手动查找并修改。安装完成后,需要运行安全脚本,比如mysql_secure_installation,来加强安全性。然后登录MySQL,可能需要修改密码,创建新用户,或者进行其他配置。 另外,用户可能需要安装客户端工具,比如mysql-client,以便远程连接或管理。此外,安装完成后可能需要调整防火墙设置,允许外部访问MySQL的端口(默认3306)。但如果是本地使用,可能不需要这一步。 需要注意的常见问题包括安装过程中没有提示设置密码,这时候需要按照引用[4]的方法查看debian.cnf文件中的用户名和密码,然后用这些临时凭证登录,之后修改密码。还有可能安装后服务没有启动,需要手动启动服务,比如使用sudo systemctl start mysql。 还需要考虑是否要安装特定版本MySQL,如果默认版本不符合需求,可能需要添加官方仓库或其他来源来安装指定版本,但一般情况下使用默认仓库的版本即可。 总结步骤应该是: 1. 更新系统包 2. 安装mysql-server 3. 安装完成后检查服务状态 4. 获取初始密码(如果需要的话) 5. 运行安全脚本 6. 登录并修改root密码 7. 配置远程访问(如果需要) 8. 安装客户端工具 可能还需要安装相关的开发库,比如libmysqlclient-dev,以便后续开发使用。 现在需要把这些步骤整理成用户容易理解的流程,并确保每个步骤的命令正确无误。同时,要引用正确的来源,比如引用[2]关于版本对应,引用[4]关于密码修改的部分。此外,提醒用户注意版本差异带来的不同操作步骤。</think>### 分步指南:在 Ubuntu安装 MySQL 数据库 #### 步骤 1:确认 Ubuntu 版本 不同 Ubuntu 版本默认安装MySQL 版本不同(见引用[2]): - Ubuntu 20.04 LTS → MySQL 8.0 - Ubuntu 18.04/16.04 LTS → MySQL 5.7 - Ubuntu 14.04/12.04 LTS → MySQL 5.5 可通过以下命令查看系统版本: ```bash lsb_release -a ``` #### 步骤 2:更新软件包列表 安装前更新软件源: ```bash sudo apt update ``` #### 步骤 3:安装 MySQL 服务器 执行以下命令安装默认版本MySQL 服务端: ```bash sudo apt install mysql-server ``` #### 步骤 4:启动 MySQL 服务 安装完成后自动启动服务,若未启动可手动操作: ```bash sudo systemctl start mysql # 启动服务 sudo systemctl enable mysql # 设置开机自启 ``` #### 步骤 5:获取初始密码(仅限自动生成密码的情况) 部分 Ubuntu 版本会生成临时密码(如 20.04),需通过以下命令查看(引用[4]): ```bash sudo cat /etc/mysql/debian.cnf ``` 记录 `user` 和 `password` 字段的值用于临时登录。 #### 步骤 6:运行安全配置脚本 执行交互式安全配置,包括设置 root 密码、移除匿名用户等: ```bash sudo mysql_secure_installation ``` 根据提示完成操作,若已通过临时密码登录,需在此步骤修改 root 密码。 #### 步骤 7:登录 MySQL 使用 root 用户登录: ```bash sudo mysql -u root -p ``` #### 步骤 8:安装客户端工具(可选) 若需远程访问或管理,可安装 MySQL 客户端(引用[3]): ```bash sudo apt install mysql-client ``` #### 验证安装 检查 MySQL 版本: ```bash mysql --version ``` #### 配置远程访问(可选) 1. 编辑配置文件: ```bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 将 `bind-address = 127.0.0.1` 改为 `0.0.0.0`。 2. 重启服务: ```bash sudo systemctl restart mysql ``` 3.MySQL 中授权远程用户: ```sql CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'; FLUSH PRIVILEGES; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值