====================================================== Mysql基础篇 ====================================================== 1、安装 groupadd mysql useradd -g mysql -s /bin/false -d /dev/null mysql tar zxvf mysql-standard-4.1.10a-pc-linux-gnu-i686.tar.gz ln -s mysql-standard-4.1.10a-pc-linux-gnu-i686 mysql ./scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql data chgrp -R mysql . ./bin/mysqld_safe --user=mysql & netstat -anl 2、将mysqld服务设置成系统服务,系统启动后让它自己启动。 复制/usr/local/my- large.cnf 到/etc/my.cnf cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf 将启动文件拷贝启动文件到 /etc/init.d/ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 以后可以使用 /etc/init.d /mysqld {start|stop|reload}命令来启动停止mysql服务。 # chkconfig --list|grep mysqld # chkconfig --add mysqld # chkconfig --list|grep mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off 3、修改配置文件中的 Mysql帐号和密码 # /usr/local/mysql/bin/mysql //只允许本地访问。 mysql> set password for 'root'@'localhost'=password('123456'); Query OK, 0 rows affected (0.12 sec) //允许任何IP进行访问。 mysql> set password for 'root'@'*'=password('123456'); Query OK, 0 rows affected (0.00 sec) 忘记密码的修改方法 结束mysql进程(kill) 启动的时候加入选项:--skip_grant_tables 此时连接数据库不需要密码验证 再重新设置密码 mysqladmin -u用户名 -p旧密码 password 新密码 或 UPDATE user SET Password=PASSWORD("your password here") WHERE User="root"; 4、设置远程可以访问 mysql> grant all on *.* to 'root'@'%' identified by '123456'; mysql> flush privileges; 使用其他机器的客户端可以连接该数据库,进行远程管理。 5、数据库说明 Myisam *.frm----表定义文件,存放表结构定义。 *.MYD----数据文件,存各个数据行的内容。 *.MYI----索引文件,存放表的全部索引信息。 但是Myisam不支持事务 Innodb 只有一个*.frm的定义文件 支持事务,崩溃后自动恢复 建立方法 CREATE TABLE () ENGINE=InnoDB 6、导入导出 数据库的导出: [root@fedora data]#mysqldump -uroot -p123456 mytestdb>/home/zhoulj/mytestdb.sql 将mytestdb数据库备份到mysestdb.sql文件中。 数据库的导入: [root@fedora data]# mysql -uroot -p123456 mytestdb将备份文件导入到书库中。 表的导到出与导入: 例如:将 RATE_SUMMARY 表中的DATE1>=20060601 AND DATE1<=20060613的数据导出,然后在导入。 表的导出: /usr/local/mysql/bin/mysqldump -uroot -p123456 --opt mysqldb RATE_SUMMARY --where="DATE1>='20060601' and DATE1<='20060613'" >RATE_SUMMARY-20060619.sql 表的导入: /usr/local/mysql/bin/mysql -uroot -p123456 mysqldb 7、删除binlog [root@fedora data]# ll total 20580 -rw-rw---- 1 mysql mysql 140 Jun 10 16:38 fedora-bin.000001 -rw-rw---- 1 mysql mysql 148 Jun 10 16:40 fedora-bin.000002 -rw-rw---- 1 mysql mysql 79 Jun 11 12:49 fedora-bin.000003 删除fedora- bin.000002文件。 [root@fedora data]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 4.1.10a-max-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> mysql> purge master logs to 'fedora-bin.000003'; Query OK, 0 rows affected (0.06 sec) mysql> \q; Bye [root@fedora data]# ll total 20576 -rw-rw---- 1 mysql mysql 79 Jun 11 12:49 fedora-bin.000003 -rw-rw---- 1 mysql mysql 20 Jun 11 12:52 fedora-bin.index ok,日志被删掉了, 注意:删除的文件不包含“文件名称里面的文件” 8、刷新binlog日志 BINLOG日志系统的组成: BINLOG日志系统由两部分组成:xxxx-bin.index xxxx-bin.nnn index文件是一个文本文件,每一行是一个文件名,记录一个xxxx-bin.nnn的文件所在的位置. xxxx-bin.nnn 文件是mysql的binlog文件的实体,采用二进制方式存储数据的信息. 当一个xxxx- bin.nnn文件的大小达到 max_binlog_size 后mysql就会生成一个新的xxxx-bin.nnn文件. index文件中的最后一个 xxxx-bin.nnn文件被称作Online Binlog,其他的被称作Archived Binlog. Archived Binlog 在生成后就不再会有任何改动了,但是可以被其他的同步数据库通过数据同步机制进行访问(读取). Online Binlog 是mysql正在使用的binlog,mysql在不断的追加信息,同时其他同步数据库也可能在读取这些信息. 方法1:在mysql提示符下输入flusd logs; [root@fedora data]# ll -rw-rw---- 1 mysql mysql 140 Jun 10 16:38 fedora-bin.000001 这里没就1个binlog文件 mysql> flush logs; Query OK, 0 rows affected (0.12 sec) mysql> [root@fedora data]# ll -rw-rw---- 1 mysql mysql 140 Jun 10 16:38 fedora-bin.000001 -rw-rw---- 1 mysql mysql 79 Jun 10 16:40 fedora-bin.000002 删除fedora- bin.000002文件。 方法2:在命令行 mysqladmin flush-log [root@fedora data]# /usr/local/mysql/bin/mysqladmin flush-log [root@fedora data]# ll -rw-rw---- 1 mysql mysql 140 Jun 10 16:38 fedora-bin.000001 -rw-rw---- 1 mysql mysql 79 Jun 10 16:40 fedora-bin.000002 -rw-rw---- 1 mysql mysql 79 Jun 10 16:42 fedora-bin.000003 删除fedora- bin.000002文件。 9、初始化日志文件 使日志文件重.001开始 mysql> reset master;
阅读(880) | 评论(0) | 转发(0) |