① 怎么修改linuxmysql数据库上传文件的大小
Linux 进程通过 C 标准库中的内存分配函数 malloc 向系统申请内存,但是到真正与内核交互之间,其实还隔了一层,即内存分配管理器(memory allocator)。常见的内存分配器包括:ptmalloc(Glibc)、tcmalloc(Google)、jemalloc(FreeBSD)。MySQL 默认使用的是 glibc 的 ptmalloc 作为内存分配器。
目前 jemalloc 应用于 Firefox、FaceBook 等,并且是 MariaDB、Redis、Tengine 默认推荐的内存分配器,而 tcmalloc 则应用于 WebKit、Chrome 等。
② linux mysql 怎么修改mysqld.pidlujing
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。1.安装方法有两种,一种是yum安装,另外一种是源码安装
rpm安装命令如下
yum install mysql-server -y
2.查看相关路径的方法如下
[root@rhel5 ~]# find / -name mysql -print
/etc/rc.d/init.d/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/var/lock/subsys/mysql
/usr/lib/mysql
/usr/include/mysql
/usr/share/mysql
/usr/bin/mysql
而 data默认放在:/var/lib/mysql
2.一般来说只要修改数据的存放路径就可以,修改方法如下
原路径:/var/lib/mysql
目标路径:/home/data/mysql
(1)home目录下建立data目录
cd /home
mkdir data
(2)停止mysql进程
service mysqld stop
(3)把/var/lib/mysql整个目录保持权限复制到/home/data
cp -arp /var/lib/mysql/home/data/
(4)找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/找到my-medium*.cnf文件,拷贝到/etc/并改名为my.cnf
命令如下:
[root@test1 mysql]# cp
/usr/share/mysql/my-medium.cnf/etc/my.cnf
(5)编辑/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改
socket=/var/lib/mysql/mysql.sock 为:
socket=/home/data/mysql/mysql.sock
操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server[mysqld]
port= 3306
#socket =
/var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket = /home/data/mysql/mysql.sock(加上此行)
(6)修改MySQL启动脚本/etc/init.d/mysql
搜索datadir将/var/lib/mysql修改成现在的实际存放路径:home/data/mysql
[root@test1 etc]# vi/etc/init.d/mysql
get_mysql_option mysqld datadir "/data/mysql"
最后做一个mysql.sock 链接:
ln -s /home/data/mysql/mysql.sock
/var/lib/mysql/mysql.sock(需要从/home/data/mysql下复制一份过来)
(7)重新启动MySQL服务
service mysqld restart
最后创建数据库,查看目标目录下是否已经存在
③ linux怎么修改mysql数据库
方法一:
在mysql系统外,使用mysqladmin
# mysqladmin -u root -p password "test123"
Enter password: 【肆逗输入原来的密码】
方法二:
通过登录mysql系统裂明卖,
# mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=passworD("test"槐配) where user='root';
mysql> flush privileges;
mysql> exit;
④ linux系统mysql数据库怎么修改数据库存放路径
修改数据库管理员用户密码,默认为空。
#./mysqladmin
-u
password
"123456"设置密码
#
./mysqladmin
-u
root
-p
password
"123456"
修改密码
enter
password:
原来的密码
如果忘记密码
vim
/etc/my.cnf
[mysqld]
#skip-grant-tables
#skip-networking
service
mysqld
restart
mysql
-uroot
-p123456
数据库里面修改密码
mysql>
use
mysql;
mysql>
update
mysql.user
set
password=password("123456")
where
user="root";
修改密码
mysql>
flush
privileges;
更新授权表
⑤ linux里的mysql中修改table数据时显示table readonly
1. 看看你的表文拍缓件的权限是多少
2. 表是否上锁
3. 检查你的数据库用户对该数据库的那些表是否有单独的访问权限控制
最有可能是表文件的权限是多少
你所在LINUX用户组是否有这袭茄模个权限纳蔽。
改成这个试试:
-rwxrwx---
⑥ 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里的[mysqld]下面一行
重启MySQL服务后,
mysql>select @@innodb_temp_data_file_pathG
***************************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 <= f_cnt
DO
SET @stmt = CONCAT('create temporarytable tmp',i,' ( id int, tmp_desc varchar(60));');
PREPARE s1 FROM @stmt;
EXECUTE s1;
SET i = i + 1;
END WHILE;
DROP PREPARE s1;
END$$
DELIMITER;
现在来创建10张临时表:
mysql>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)
功能性我就写到这里,大家性能方面如果有兴趣可以找时间去测试。
⑦ linux系统mysql数据库怎么修改数据库存放路径
mnt目录下建立mysql_data目录
#cd /mnt
#mkdir mysql_data
把MySQL服务服务停掉。
#service mysql stop
把/var/lib/mysql整个目录移到/mnt/mysql_data。
#mv /usr/local/mysql/data/mnt/mysql_data
重新设置数据权限。
#cd /mnt/mysql_data
修改my.cnf配置文件
#vi /etc/my.cnf
指明mysql.sock文件的前派产生位置。用符号#注释掉原来socket,
修改MySQL启动脚本。
#vi /etc/袭悔枣init.d/mysql
找到datadir。
datadir = /mnt/mysql_data
7
重启mysql服务
#service mysql start
好了,至此数据库目录位置已拍拆迁移完毕。
⑧ linux怎么修改mysql数据库临时表空间大小
以MySQL 8.0 来说,通过查看 8.0 的官方文档得知,8.0 的临时表空间分为会话临时表空间和全局临时表空间,会话临时表空间存储用户创建的临时表和当 InnoDB 配置为磁盘内部临时表的存储引擎时由优化器创建的内部临时表,当会话断开连接时,其临时表空间将被截断并释放回池中;也就是说,在 8.0 中有一个专门的会话临时表空间,当会话被杀掉后,可以回收磁盘空间;而原来的 ibtmp1 是现在的全局临时表空间,存放的是对用户创建的临时表进行更改的回滚段,在 5.7 中 ibtmp1 存放的是用户创建的临时表和磁盘内部临时表;
也就是在 8.0 和 5.7 中 ibtmp1 的用途发生了变化,5.7 版本临时表的数据存放在 ibtmp1 中,在 8.0 版本中临时表的数据存放在会话临时表空间,如果临时表发生更改,更改的 undo 数据存放在 ibtmp1 中;
总结:在 mysql5.7 时,杀掉会话,临时表会释放,但是仅仅是在 ibtmp 文件里标记一下,空间是不会释放回操作系统的。如果要释放空间,需要重启数据库;在 mysql8.0 中可以通过杀掉会话来释放临时表空间。
⑨ linux环境下通过软链接变更mysql数据存储路径
想要改变mysql数据存储路径的想法最初是在生产服务器上mysql的数据放到了系统盘上,导致系戚昌散统盘满额,没有足够的内存交换空间而死机。
将mysql数据存储到其他目录下有两种方法,方法一修改my.cnf配置文件,不过经过笔者通过网上的配置资料尝试总是不成功,环境是在centos7下操作的。后来想到一个简单的方法,通过linux的软链接高氏将实际数据放到另外的目录里面就可以了。
操作系迅芦统是centos7
mysql是通过二进制包里面的rpm方式安装的。相当于全自动了。
先关闭mysql
默认情况下,rpm安装好的mysql会将数据放置在 /var/lib/mysql 目录当中,我们像将数据迁移到/mnt/data目录当中在terminal当中输入:
mv命令会直接将 /var/lib/mysql 文件夹直接剪切到 /mnt/data 目录当中。
这时我们需要回到/var/lib目录当中,
在这个目录当中建立软链接。
软链接相当于windows里面创建目录快捷方式是一样的,这个时候你应该可以看到mysql文件夹回到了 /var/lib 目录当中,要进去查看一下mysql的路径是否和my.cnf一致。
这时候我们再启动mysql
以上我们就将数据迁移到其他目录下,并且还没有修改和变更my.cnf文件。
⑩ linux MYSQL怎么去修改数据库存放的位置
FreeBSD主机上的mysql安装的时候数据库文件放在/var/db/mysql下,在Linux主机上的默认存储位置是/var/lib/mysql/下。如果想更换mysql的数据文件的存储位置,则:FreeBSD下:# /usr/local/etc/rc.d/mysql-server stop(