当前位置:
网络安全 > 在Ubuntu中安装和配置MySQL数据库的计划和操作
在Ubuntu中安装和配置MySQL数据库的计划和操作
下面的文章主要介绍在Ubuntu中安装和配置MySQL数据库的3个有用的计划,以及正确配置MySQL数据库的实际操作过程以及如何正确配置管理 MySQL 数据库。以下是文章的主要内容说明,希望您能有更深入的了解。
三种安装方法:
1. 从 Internet 安装 sudo apt-get install mysql-server。安装完成后,Mysql环境变量已经自动配置完毕,可以直接使用mysql命令。
注意:建议将/etc/apt/source.list中的cn更改为us。美国的服务器比中国的服务器快得多。
2、安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例。
3、二进制包安装:安装完成后,Mysql环境变量已经自动配置完毕。可以直接使用mysql命令。
在线安装和二进制包安装都比较简单。重点是安装离线包。
1. mysql组添加
2. mkdir /home/mysql
3. useradd -g MySQL -d /home/MySQLmysql
4、复制mysql-5.0.45-linux-i686-icc-glibc23.tar.gz到/usr/local目录
5、解压:tar zxvf mysql-5.0.45-linux-i686-icc-glibc23.tar.gz
6. ln -s mysql-5.0.45-linux-i686-icc-glibc23 mysql
7. cd /usr/local/mysql
8. chown -R MySQL。
9. chgrp -R MySQL。
10.scripts/mysql_install_db --user=MySQL(必须在mysql目录下执行,注意输出文本,其中包含更改root密码和启动mysql的命令)
11.设置root密码:./bin/mysqladmin -u root密码 'passw0rd'
配置MySQL并管理MySQL:1、修改mysql最大连接数:cp support-files/my-medium.cnf ./my.cnf,vim my.cnf,添加或修改max_connections=1024
关于my.cnf:mysql按照以下顺序搜索my.cnf:/etc、mysql安装目录以及安装目录中的数据。 /etc下的都是全局设置。
2、启动mysql:/usr/local/mysql/bin/mysqld_safe --user=MySQL&
检查mysql版本:mysqladmin -u root -p version
注意:对于在线安装或二进制安装,可以直接使用以下命令启动和停止mysql:/etc/init.d/MySQLstart|stop|restart
3、停止mysql:mysqladmin -uroot -ppassw0rd shutdown 注意u和p后面不要有空格
4、设置mysql自动启动:在/etc/rc.local文件中添加启动命令
5.允许root远程登录:
1)本地登录mysql:MySQL -u root -p(-p必须有);更改数据库:使用mysql;
2) 从所有主机:使用授予选项将 *.* 上的所有权限授予由“passw0rd”标识的 root@"%";
3) 从指定主机:使用 grant option 将 *.* 上的所有权限授予由“passw0rd”标识的 root@“192.168.11.205”;同花顺特权;
4)进入mysql库查看是否添加了host%的数据:use mysql;从用户中选择*;
6、创建数据库并创建用户:
1)创建数据库:创建数据库test1;
2)创建用户并授权:将test1.*上的所有权限授予“passw0rd”标识的user_test@"%",并带有grant选项;
3)删除数据库:drop database test1;
7.删除权限:1) 撤销test1@"%"对test1.*的所有权限;
2)使用mysql;
3) 从user=“root”和host=“%”的用户中删除;
4)同花顺特权;
8.显示所有数据库:显示数据库;显示数据库中所有表:showtables;
9、远程登录mysql:mysql -h ip -u user -p
10、设置字符集(以utf8为例):
1)检查当前编码:显示“character%”等变量;
2) 修改my.cnf,在[client]下添加default-character-set=utf8
3) 添加default-character-set=utf8, init_connect='SET NAMES utf8;'在[服务器]下
4)重新启动mysql。
注意:只有修改/etc下的my.cnf才能使客户端设置生效。安装目录中的设置只能使服务器设置生效。
只需修改/etc/mysql/my.cnf即可进行二进制安装
11.将旧数据升级为utf8(旧数据以latin1为例):
1)导出旧数据:mysqldump --default-character-set=latin1 -hlocalhost -uroot -B dbname --tables old_table >old.sql
2)转换编码(Linux和UNIX): iconv -t utf-8 -f gb2312 -c old.sql > new.sql
这里假设原表中的数据是gb2312。您还可以删除 -f 并让 iconv 自动确定原始字符集。
3)导入:修改new.sql,在插入或修改语句前添加一句:“SET NAMES utf8;”,并将gb2312全部修改为utf8,保存。
MySQL-hlocalhost -uroot -p dbname < new.sql
如果报max_allowed_packet错误,是因为文件太大。 mysql的默认参数是1M。只需修改my.cnf中的值即可(需要重启mysql)。12、支持utf8的客户端:Mysql-Front、Navicat、PhpMyAdmin、Linux Shell(连接后执行SET NAMES utf8;即可读写utf8数据。10.4设置后,无需执行这句再次)
13. 备份与恢复
备份单个数据库:mysqldump -uroot -p -B dbname > dbname.sql
备份所有数据库:mysqldump -uroot -p --all-databases > all.sql
备份表:mysqldump -uroot -p -B dbname --table 表名 > 表名.sql
恢复数据库:MySQL-uroot -p < name.sql
恢复表:MySQL-uroot -p dbname < name.sql(必须指定数据库)
14. 复制
Mysql支持单向异步复制,即一台服务器作为主服务器,一台或多台其他服务器作为从服务器。复制是通过二进制日志实现的,二进制日志由master写入,由slave读取。可以实现多个主服务器,但是会遇到单个服务器不会遇到的问题(不推荐)。
1)。在主服务器上创建专门用于复制的用户:将 *.* 上的复制从属权限授予 'replicationuser'@'192.168.0.87' 标识为 'iveson';
2)。刷新主服务器上的所有表并阻止写入语句:使用读锁刷新表;然后读取主服务器上的二进制文件名和分支:SHOW MASTER STATUS;记录File和Position的值。记录后关闭主服务器:mysqladmin -uroot -ppassw0rd shutdown
如果输出为空,则表示服务器上未启用二进制日志。在my.cnf文件中的[mysqld]下添加log-bin=mysql-bin,重启后就有了。
3)。为主服务器创建快照
您需要创建需要在主服务器上复制的数据库的快照。您可以在 Windows 上使用 zip 格式。对于 Linux 和 Unix,最好使用 tar 命令。然后上传到从服务器mysql的数据目录并解压。cd mysql-data-dir tar cvzf mysql-snapshot.tar ./mydb
注意:快照不应包含任何日志文件或*.info 文件,仅包含要复制的数据库的数据文件(*.frm 和*.opt)文件。
可以使用数据库备份(mysqldump)对从服务器进行数据恢复,保证数据的一致性。
4).确认主服务器上 my.cnf 文件的 [mysqld] 部分包含 log-bin 选项和 server-id,然后启动主服务器:
[mysqld] log-bin=mysql-bin server-id=1
5)。停止从服务器,添加server-id,然后启动从服务器:
[mysqld] 服务器 ID=2
注意:这里的server-id是从服务器的ID,必须与主服务器和其他从服务器不同。
可以在从服务器的配置Mysql文件中添加只读选项,这样从服务器只接受主服务器的SQL,保证数据不会被其他方式修改。
6).在从服务器上执行以下语句,将选项替换为真实的系统值:
将 master 更改为 MASTER_HOST='master_host', MASTER_USER='replication_user',MASTER_PASSWORD='replication_pwd', MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS=log_position;
7).启动slave线程:mysql> START SLAVE;停止slave线程:停止slave; (注:主服务器的防火墙应允许3306端口连接)
验证:此时主服务器和从服务器上的数据应该一致。在主服务器上插入、修改、删除数据都会在从服务器上更新。创建表、删除表等也是同样的道理。
【编辑精选】
MySQL修改root密码的3种方法介绍
MySQL存储过程中的语法学习
MySQL存储过程中的基本功能说明
MySQLDELETE语法实际操作及代码
MySQL数据库内存调优实践