mysql部署,操作及异常处理

新逸网络 939 0

1、将mysql-5.1.50-linux-x86_64-glibc23.tar.gz移至/usr/local/目录下,并改名为mysql

增加mysql组

#groupadd mysql

建mysql用户,并加入到mysql组中

#useradd –g mysql mysql

源码包解压

#tar mysql-5.1.50-linux-x86_64-glibc23.tar.gz 

将解压后的源码包放置/usr/local,并改名为mysql

#mv mysql-5.1.50-linux-x86_64-glibc23 /usr/local/mysql

进入目录

#cd /usr/local/mysql

设置目录的所属用户为mysql

#chown –R mysql /usr/local/mysql

目录的所属组为mysql

#chgrp –R mysql /usr/local/mysql

初始化数据库,一定要在mysql根目录中执行mysql_install_db、默认在/user/local/mysql/data

#/usr/local/mysql/scripts/mysql_install_db –user=mysql

设置目录的所属用户为root

#chown –R root /usr/local/mysql 

设置目录的所属用户为mysql

#chown –R mysql /usr/local/mysql/data

复制mysql的配置文件到/etc目录下,并改名为my.cnf;新版本不用复制,在mysql目录下

#cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf

配置文件的选择根据物理内存的大小,配置文件中都有相应的说明

复制启动脚本到/etc/rc.d/init.d目录下,并命名为mysqld

#cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

立即启动mysql ,但重启后无效

#service mysqld start 

设置mysql的密码为123456(安装好mysql之后默认密码为空,mysql启动后才可以设置密码)

#/usr/local/mysql/bin/mysqladmin –u root password 123456

然后输入密码进入mysql ,退出mysql命令quit;(分号要有)

#/usr/local/mysql/bin/mysql –u root –p

将mysqld添加到开启自启动的序列中

#chkconfig –add mysqld 

设置mysql为重启自启动

#chkconfig mysqld on 

查看mysql的启动状态

#chkconfig –list mysqld

如果2345为关闭就执行#chkconfig –level 2345 mysqld on

备注:

查找错误日志的目录/usr/local/data 这个目录中的***.err文件

如果执行下面的语句能启动mysql,一般都是目录的权限问题

# /usr/local/mysql/bin/mysqld_safe  –user=root  &

下面的方式也可以实现自启动,但是不推荐,相当于win32平台下的程序>启动

#echo “/usr/local/mysql/bin/mysqld_safe  –user=root  &” >> /etc/rc.local

异常:

ERROR: InnoDB: Cannot allocate memory for the buffer pool

上面需要调整只要重新设置innodb_buffer_pool_size即可。官方文档默认值给出的是128M,如下图所示。

Name Old Default New Default
innodb_additional_mem_pool_size 1MB 8MB
innodb_buffer_pool_size 8MB 128MB
innodb_change_buffering inserts all
innodb_file_format_check ON 1
innodb_log_buffer_size 1MB 8MB
innodb_max_dirty_pages_pct 90 75
innodb_sync_spin_loops 20 30
innodb_thread_concurrency 8 0

一.创建用户:

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';

CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';

CREATE USER 'pig'@'%' IDENTIFIED BY '123456';

CREATE USER 'pig'@'%' IDENTIFIED BY '';

CREATE USER 'pig'@'%';

二.授权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';

GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

开启远程权限:

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> flush privileges;

对库设置权限:

mysql> GRANT ALL ON ${database}.* TO root@"%";
mysql> flush privileges;

撤销用户权限:

mysql> revoke all on ${database}.* from root@"%" ;

三.设置与更改用户密码:

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

四.撤销用户权限:

命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename - 同授权部分.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

五.删除用户:

命令: DROP USER 'username'@'host';

六.导入sql的命令行如下:

mysql> source "路径名"/filename.sql

七. 列出所有数据库:

mysql>show database;

 

八. 切换数据库:

mysql>use '数据库名';

 

九. 列出所有表:

mysql>show tables;

 

十. 显示数据表结构:

mysql>describe 表名;

 

十一. 创建数据库:

mysql>create database 数据库名;

十二. 删除数据库和数据表:

mysql>drop database 数据库名;

mysql>drop table 数据表名;

十三.数据导入导出

1、导出数据库为dbname的表结构(其中数据库为root,密码为dbpasswd,生成的脚本名為db.sql)

mysqldump -uroot -pdbpasswd -d dbname >db.sql;

2、导出数据库为dbname某张表(test)结构

mysqldump -uroot -pdbpasswd -d dbname test>db.sql;

3、导出数据库为dbname所有表结构及表数据(不加-d)

mysqldump -uroot -pdbpasswd  dbname >db.sql;

4、导出数据库为dbname某张表(test)结构及表数据(不加-d)

mysqldump -uroot -pdbpasswd dbname test>db.sql;

5、导入数据库

mysql> source db.sql;

发表评论 取消回复
表情 图片 链接 代码

分享