mysql 如何使用帮助_mysql

Mysql 使用帮助

yum 安装

安装包

yum install -y mysql mysql-server php-mysql

移除已有的包

yum remove mysql mysql-server php-mysql

shell

编码设置

查看编码

SHOW VARIABLES LIKE 'character_set_%';

一、编辑MySql的配置文件

MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一般是 /etc/my.cnf

--在 [mysqld] 标签下加上三行

default-character-set = utf8

character_set_server = utf8

lower_case_table_names = 1 //表名不区分大小写(此与编码无关)

--在 [mysql] 标签下加上一行

default-character-set = utf8

--在 [mysql.server]标签下加上一行

default-character-set = utf8

--在 [mysqld_safe]标签下加上一行

default-character-set = utf8

--在 [client]标签下加上一行

default-character-set = utf8

Linux源码安装

1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件

(1)先安装cmake(mysql5.5以后是通过cmake来编译的)

tar -zxv -f cmake-2.8.4.tar.gz

cd cmake-2.8.4

./configure

make

make install

(2)创建mysql的安装目录及数据库存放目录

mkdir -p /usr/local/mysql //安装mysql

mkdir -p /usr/local/mysql/data //存放数据库

(3)创建mysql用户及用户组

groupadd mysql

useradd -r -g mysql mysql

(4)安装mysql

tar -zxv -f mysql-5.5.10.tar.gz

cd mysql-5.5.10

root@ rhel5 mysql-5.5.10]#cmake .

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/usr/local/mysql/data

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DEXTRA_CHARSETS=all

-DENABLED_LOCAL_INFILE=1

make

make install

参数说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录

-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录

-DDEFAULT_CHARSET=utf8     //使用utf8字符

-DDEFAULT_COLLATION=utf8_general_ci //校验字符

-DEXTRA_CHARSETS=all     //安装所有扩展字符集

-DENABLED_LOCAL_INFILE=1    //允许从本地导入数据

注意事项:

重新编译时,需要清除旧的对象文件和缓存信息。

make clean

rm -f CMakeCache.txt

rm -rf /etc/my.cnf

2.配置

(1)设置目录权限

cd /usr/local/mysql

chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql

chown -R mysql:mysql data

(2)将mysql的启动服务添加到系统服务中

cp support-files/my-medium.cnf /etc/my.cnf

(3)创建系统数据库的表

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql

(4)设置环境变量

vi /root/.bash_profile

在PATH=$PATH:$HOME/bin添加参数为:

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

source /root/.bash_profile

(5)手动启动mysql

cd /usr/local/mysql

./bin/mysqld_safe --user=mysql &   //启动MySQL,但不能停止

启动日志写在此文件下:/usr/local/mysql/data/localhost.err

关闭MySQL服务

mysqladmin -u root -p shutdown  //这里MySQL的root用户还没有配置密码,所以为空值。需要输入密码时,直接点回车键即可。

(6)另一种简单的启动mysql的方法(mysql已经被添加到系统服务中)

注意:在/usr/local/mysql/share/mysql/mysql.server中,而本系统中,mysql.server在/usr/local/mysql/support-files/mysql.server中。

拷贝到 /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig mysqld on

service mysqld start

service mysqld start

service mysqld stop

service mysqld restart

(7)创建用户并授权

创建管理员

mysql -u root mysql

CREATE USER '用户名'@'%' IDENTIFIED BY '密码';

GRANT all privileges ON *.* TO '用户名'@'%' WITH GRANT OPTION;

flush privileges;

创建授权某一数据库

CREATE USER '用户名'@'%' IDENTIFIED BY '密码';

GRANT CREATE,DROP,SELECT,INSERT,DELETE,UPDATE,ON 数据库名称.* TO '用户名'@'%';

flush privileges;

若还不能进行远程连接,则配置防火墙

/

/etc/rc.d/init.d/iptables stop

注:如果不能远程连接,出现错误mysql error number 1130,则加入下面语句试试:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;

主从配置

在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一。尤其是在大规模系统中,数据库集群已经成为必备的配置之一。集群的好处主要有:查询负载、数据库复制备份等。

MySQL数据库支持数据库的主从复制功能,因此在集群方面具有其独特的优势。众多国内外大型网站架构体系中,均采用了MySQL的主从数据库配置来实现查询负载、数据库热备等功能。本人在实际的Web项目中也涉及到这一需求,在此将如何配置实现做个简单小结。

1、实验环境

主库:Ubuntu IP:192.168.1.189

从库:Ubuntu IP:192.168.1.188

2、主数据库配置

A、修改配置文件/etc/mysql/my.cnf or /etc/my.conf

任何一台MySQL数据库服务器都可以配置为集群主服务器,打开MySQL的配置文件,在配置文件中加入下面两行:

server-id = 1

log-bin = binlog_repl

binlog-do-db = test //设置需要同步的数据库,如果需要设置多个,则加入多条这行语句。

注:MySQL是通过二进制的日志文件来进行主从数据库复制的,所以必须开启日志功能,即上述的log-bin;另外在集群中,每台数据库服务器都需要指定一个唯一ID,这里我们指定为1。

给主数据库授权一个可以进行复制的用户,执行如下命令:

grant replication slave on *.* to 'slave'@'%' identified by '123';

执行成功后,重启MySQL。

B、锁定数据库并备份

mysql>flush tables with read lock;

< code > 备份数据库,传输到从数据库的数据目录下/var/lib/mysql;

C、用show master status;命令查看主数据库状态

File

Position

Binlog_Do_DB

Binlog_Ignore_DB

binlog_repl.000001106test

记录下File和Position的值。

D、主数据库解锁:unlock tables;

3、从数据库配置

A、修改配置文件/etc/mysql/my.cnf or /etc/my.conf

在mysqld下加入如下代码:

server-id=2

master-host=192.168.1.189

master-user=slave

master-password=123

保存后,重启mysql服务。

B、设置slave参数,启动

在mysql下执行slave stop命令,停止slave服务;

mysql> change master to

-> master_host='192.168.1.189',

-> master_user='slave',

-> master_password='123',

-> master_log_file='binlog_repl.000001',

-> master_log_pos=106;

注意:这里的masterlogfile,masterlogpos的值要和master的值一致。否则会无法同步。

执行slave start命令,启动服务。

4、验证同步

从数据库下运行show slave status \G;

如果能看到:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

说明已经成功启动了主从数据库的数据同步。

在主数据库中执行插入语句 insert into user values('kangqing','1234567890');

在从数据库中执行查询,可以看到主数据库插入的数据已经同步到从数据库表中。

估计是权限问题

解决方法:

修改/var/lib/mysql文件夹的权限,对mysql.mysql用户赋予读写权限即可。

chown -R mysql:mysql /database/mysql

chmod +r+w+x -R /database/mysql

linux 下备份

#!/bin/bash

backDate=`date +%Y-%m-%d_%H_%M`

backDateFile=/database/mysql/sql/mysql.$backDate.7z

testSQL="select(abs(-9))"

shellCmd="mysql -h 127.0.0.1 -uroot --database=test -e $testSQL"

$shellCmd

result=$?

if [ $result -eq 0 ]

then

if [ -f $backDateFile ]; then

rm -f $backDateFile

echo "delete old "$backDateFile

else

echo "to "$backDateFile

fi

mysqldump --all-databases --events --ignore-table=mysql.events -h 127.0.0.1 -uroot | 7za a -aoa -mx=9 -m0=PPMd:mem=256M -si $backDateFile

cd /database/mysql/sql

/database/mysql/bin/tranftp.sh mysql.$backDate.7z

exit 0;

else

echo "not start mysql"

exit 1;

fi

windows 下备份

set bakfile=d:\website\database\mysql.%date:~0,10%.sql.7z

del %bakfile%

d:\mysql\bin\mysqldump --all-databases -h localhost -uroot -p密码 | 7z a -aoa -mx=9 -m0=PPMd:mem=256M -si %bakfile%

定时任务

10 2 * * 2,4 /database/mysql/bin/cleandump.sh

10 2 * * 1,5 /database/mysql/bin/mydump.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值