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;