教程:如何使用Linux修改MySQL? (linux mysql 修改)

MySQL是现代web应用程序的核心组件之一。由于其开放源代码和可靠性,MySQL是许多开发人员和企业用户的首选。MySQL的优点之一是其高度自定义性,各种配置选项可以满足不同应用程序的需求。在本指南中,您将学习如何使用Linux修改MySQL以满足您的个人或业务需求。

1.安装MySQL

在启动MySQL之前,需要先按照下面的步骤在Linux上安装MySQL。

步骤1:更新系统

$ sudo apt-get update

步骤2:安装MySQL服务

$ sudo apt-get install mysql-server

2.打开MySQL配置文件

MySQL配置文件的位置取决于操作系统,但通常在/etc/mysql/目录下。要编辑此文件,您需要超级用户特权。使用以下命令打开配置文件:

$ sudo vi /etc/mysql/mysql.cnf

配置文件是一个非常大的文本文件,包含MySQL的所有配置选项。因此,我们需要找到要修改的内容。您可以使用“/”来查找文本,例如,“/cache”。我们将演示如何改变两个常用的MySQL选项:缓存大小和更大连接数。

3.修改缓存大小

MySQL的默认命令和查询缓存大小是16MB。但是,对于高流量应用程序,此缓存大小可能会过小。假设我们想将缓存大小增加到256MB。在MySQL配置文件中搜索以下字符串:

query_cache_size=16M

使用vim编辑器,将查询缓存大小设置为256MB:

query_cache_size=256M

请注意,您可以采用不同的缓存大小,但建议不要超过可用RAM大小的25%。

4.修改更大连接数

在默认情况下,MySQL将更大连接数设置为100。这意味着如果同时有超过100个连接请求,则MySQL将开始拒绝新的连接请求。许多企业应用程序需要更高的更大连接数。假设我们想要将其增加到1000。在MySQL配置文件的顶部或底部搜索以下字符串:

max_connections=100

使用vim编辑器,将更大连接数设置为1000:

max_connections=1000

5.重载MySQL配置

对于改动MySQL配置文件后的重要一步是重载MYSQL配置。您需要使用以下命令:

$ sudo systemctl restart mysql.service

终端输出显示服务正在重新启动:

Job for mysql.service fled because the control process exited with error code. See “systemctl status mysql.service” and “journalctl -xe” for detls.

重载完成后,您可以使用以下命令检查MySQL服务的状态:

$ sudo systemctl status mysql.service

您应该看到MySQL正在运行。

6.测试连接

为了确保修改后的MySQL服务器工作正常,请测试连接。用以下命令登录MySQL服务器:

$ mysql -u root -p

如果MySQL请求密码,请输入您的密码。如果未提示密码,请按回车键继续。一旦你这样做,你应该看到MySQL命令行提示符。尝试运行一些命令和查询,以确保服务器运行正常。

MySQL是许多现代web应用程序的核心组件,不仅是因为其开放源代码和可靠性,还因为它的高度自定义性。本指南介绍了如何使用Linux修改MySQL以满足各种应用程序的需求。您可以使用这些步骤来修改缓存大小和更大连接数,以提高MySQL性能和效率。请注意,当您更改MySQL配置文件时,总是建议备份文件以防意外的意外更改。

相关问题拓展阅读:

linux下怎么修改mysql的字符集编码

找到配置文件搭神

/etc/知漏亏mysql/my.cnf

在下面加上

default-character-set=utf8

在下面加上

default-character-set=utf8

重启服务器

service mysql restart

在mysql中键入命令:

show variables like ‘搜逗character_set_%’

显示结果如下:

character_set_client utf8

character_set_connection utf8

character_set_database latin1

character_set_filesystem binary

character_set_results utf8

  可直接进入 mysql 进行更改,具体如下:

  1.查找/etc目录下是否有my.cnf文件;

#ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)

.如果没有就要从/usr/share/mysql,拷贝一镇碧个到/etc 下,在/usr/share/mysql目录下有五个后缀为.cnf的文件,分别是 my-huge.cnf my-innodb-heavy-4G.cnf my-large.cnf my-medium.cnf my-all.cnf ;从中随便拷贝一个到/etc目盯盯录下并御则举将其改为my.cnf文件,我选择的是my-medium.cnf :

#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

.修改my.cnf文件,在该文件中的三个地方加上 default-character-set=utf8( )

#vi /etc/my.cnf

修改如下:(红色为添加部分)

#password= your_password

port= 3306

socket= /var/lib/mysql/mysql.sock

default-character-set=utf8

port= 3306

socket= /var/lib/mysql/mysql.sock

skip-locking

key_buffer = 16M

max_allowed_packet = 1M

table_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

default-character-set=utf8

init_connect=’SET NAMES utf8′ //此行可不加

no-auto-rehash

default-character-set=utf8

保存退出;

.重起MySQL服务器,使其设置的内容生效

#/etc/init.d/mysql restart

. 重新登入mysql;

# mysql -u root – p

#(输入密码)

mysql> show variables like ‘character_set%’ ;

+++

| Variable_name| Value|

+++

| character_set_client | utf|

| character_set_connection | utf|(都生成了utf8,成功了 哈哈哈)

| character_set_database | utf|

| character_set_filesystem | binary|

| character_set_results | utf|

| character_set_server | utf|

| character_set_system | utf|

| character_sets_dir| /usr/share/mysql/charsets/ |

+++

mysql启动和停止 操作 :

可以通过 #/etc/init.d/mysql (实现启动,停止,重启)

也可以通过 #service mysql (实现启动,停止,重启)

*********************************

另外:如果在修改字符集前,尝试在数据库中插入中文,那么当修改了字符集后,在你所插入中文的数据库中(在别的数据库中可能没问题),

通过show variables like ‘character_set%’查询的结果可如下:

+++

| Variable_name| Value|

+++

| character_set_client | utf|

| character_set_connection | utf|

| character_set_database | latin|

| character_set_filesystem | binary|

| character_set_results | utf|

| character_set_server | utf|

| character_set_system | utf|

| character_sets_dir| /usr/share/mysql/charsets/ |

+++

设定初始语言就行了啊祥凯

这个也是很重要的, 否则乱码

linux怎么修改mysql数据库临时表空间大小

先来说说临时表的概念。 临时表顾名思义,就是临时的,用完销毁掉的表。 数据既可以保存在临时的文件系统上,也可以保存在固定的磁盘文件系统上。 临时表有下面几种:

1全局临时表

这种临时表从数据库实例启动后开始生效,在数据库实例销毁后失效。在MySQL里面这种临时表对应的是内存表,即memory引擎。

2会话级别临时表

这种临时表在用户登录系统成功后生效,在用户退出时失效。在MySQL里的临时表指的就是以 create temporary table 这样的关键词创建的表。

3事务级别临时表

这种临时表在事务开始时生效,事务提交或者回滚后失效。 在MySQL里面没有这种临时表,必须利用会话级别的临时表间接实现。

4检索级别临时表

这种临时表在SQL语句执行之间产生,执行完毕后失效。 在MySQL里面这种临时表不是很固定,跟随MySQL默认存储引擎来变化。比如默认存储引擎是MyISAM,临时表的引擎就是MyISAM,并且文件生成形式以及数据运作形式和MyISAM一样,只是数据保存在内存里;如果默认引擎是INNODB,那么临时表的引擎就是INNODB,此时它的所有信息都保存在共享表空间ibdata里面。

MySQL 5.7对于InnoDB存储引擎的临时表空间做了优化。在MySQL 5.7之前,INNODB引擎的临时表都保存在ibdata里面,而ibdata的贪婪式磁盘占用导致临时表的创建与删除对其他正常表产生非常大的性能影响。在MySQL5.7中,对于临时表做了下面两个重要方面的优化:

MySQL5.7 把临时表的数据以及回滚信息(仅限于未压缩表)从共享表空间里面剥离出来,形成自己单独的表空间,参数为innodb_temp_data_file_path。

在MySQL5.7 中把临时表的相关检索信息保存在系统信息表中:information_schema.innodb_temp_table_info. 而MySQL 5.7之前的版宽判念本想要查看临时表的系统信息是没有太好的办法。

需要注意的一点慎困就是,虽然INNODB临时表有自己的表空间,但是目前还不能自己定义临时表空间文件冲亏的保存路径,只能是继承innodb_data_home_dir。此时如果想要拿其他的磁盘,比如内存盘来充当临时表空间的保存地址,只能用老办法,做软链。举个小例子:

我现在用的OS是 Ubuntu12.X,想用tmpfs文件系统充当临时表空间,

root@ytt-master-VirtualBox:/usr/local/mysql/data# ln -s/run/shm/ /usr/local/mysql/data/tmp_space2

root@ytt-master-VirtualBox:/usr/local/mysql/data#ls -l | grep ‘shm’

lrwxrwxrwx1 root root 9 Nov 13 10:28tmp_space2 -> /run/shm/

然后把

innodb_temp_data_file_path=tmp_space2/ibtmp2:200M:autoextend

添加到my.cnf里的下面一行

重启MySQL服务后,

mysql>select @@innodb_temp_data_file_path\G

***************************1. row ***************************

@@innodb_temp_data_file_path:tmp_space2/ibtmp2:200M:autoextend

1 rowin set (0.00 sec)

先写一个批量创建临时表的存储过程:

DELIMITER$$

USE`t_girl`$$

DROPPROCEDURE IF EXISTS `sp_create_temporary_table`$$

CREATEDEFINER=`root`@`localhost` PROCEDURE `sp_create_temporary_table`(

IN f_cnt INT UNSIGNED )

BEGIN

DECLARE i INT UNSIGNED DEFAULT 1;

WHILE i call sp_create_temporary_table(10);

QueryOK, 0 rows affected (0.07 sec)

如果在以前,我们只知道创建了10张临时表,但是只能凭记忆或者手工记录下来临时表的名字等信息。

现在可以直接从数据字典里面检索相关数据。

mysql> select * frominformation_schema.innodb_temp_table_info;

++++++-+

|TABLE_ID | NAME | N_COLS | SPACE| PER_TABLE_TABLESPACE | IS_COMPRESSED |

++++++-+

| 56 | #sql1705_2_9 | 5 | 36 | FALSE | FALSE |

| 55 | #sql1705_2_8 | 5 | 36 | FALSE |FALSE |

| 54 | #sql1705_2_7 | 5 | 36 | FALSE | FALSE |

| 53 | #sql1705_2_6 | 5 | 36 | FALSE | FALSE |

| 52 | #sql1705_2_5 | 5 | 36 | FALSE |FALSE |

| 51 | #sql1705_2_4 | 5 | 36 | FALSE | FALSE |

| 50 | #sql1705_2_3 | 5 | 36 | FALSE | FALSE |

| 49 | #sql1705_2_2 | 5 | 36 | FALSE |FALSE |

| 48 | #sql1705_2_1 | 5 | 36 | FALSE | FALSE |

| 47 | #sql1705_2_0 | 5 | 36 | FALSE | FALSE |

++++++-+

10rows in set (0.00 sec)

功能性我就写到这里,大家性能方面如果有兴趣可以找时间去测试。

一般分为没码windows和linux

windows通常放在安装目闷高录下的 \MySQL\MySQL Server 5.0\my.ini

Linux 默认是放在 /etc/my.cnf

关于linux mysql 修改的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 教程:如何使用Linux修改MySQL? (linux mysql 修改)