CentOS下Mysql安装调试
一、安装
- yum安装:yum install -y mysql-server mysql mysql-devel
- 设置自启动:chkconfig mysqld on
- 启动MySQL:service mysqld start
- 设置root密码:/usr/bin/mysqladmin -u root password "123456"
- 安装测试:mysql -uroot -p
- 设置允许远程访问:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> flush privileges;
- 关闭端口3306防火墙:
iptables -A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables save
service iptables restart
二、调试:
- 报错信息:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
错误原因:因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来;
解决办法:
1.关闭mysql
# service mysqld stop
2.屏蔽权限
# mysqld_safe --skip-grant-table
屏幕出现: Starting demo from .....
3.新开启一个终端输入
# mysql -u root mysql
mysql> delete from user where USER=''; //从用户表中删除匿名用户(空用户名的用户)
mysql> FLUSH PRIVILEGES; //使修改生效,否则如果关闭先前的终端,又会出现原来的错误
mysql> quit
- 报错信息:ERROR 1045 (28000): Access denied for user 'root'@'192.168.0.1' (using password: YES)
解决办法:配置mysql数据库跳过校验:
打开/etc/my.cnf,在mysqld下面添加skip-grant-tables,保存退出;
三、其他:
数据库备份(备份test数据库为test.sql):mysqldump -uroot -p123456 test >test.sql
mysqldump --default-character-set=utf8 --routines --events -hlocalhost -uroot -p123456 zclouddb_v2 > /home/tmp/backup.sql
(--routines:导出存储过程及触发器)
登陆mysql:mysql -uroot -p
切换数据库:use test; (没有的话先创建再切换,创建:create database test;)
数据库导入(导入test.sql):source /root/tmp/test.sql
数据库删除:use mysql;
DROP DATABASE test;
登陆mysql:mysql -uroot -p
切换数据库:use test; (没有的话先创建再切换,创建:create database test;)
数据库导入(导入test.sql):source /root/tmp/test.sql
数据库删除:use mysql;
DROP DATABASE test;
- 忽略大小写:修改/etc/my.cnf,在[mysqld]下加入一行:lower_case_table_names=1
- 设置最大字节数:修改/etc/my.cnf,在[mysqld]下加入一行:max_allowed_packet=4M
- 修改数据库密码:可使用数据库连接工具连接数据库,打开命令行界面,
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重启mysql:service mysqld restart; - 更改数据存储位置:
关闭数据库服务:service mysqld stop
移动数据文件(yum安装后数据文件位置默认为:/var/lib/mysql):mv /var/lib/mysql /home/data/
修改配置文件:vim /etc/my.cnf ,将datadir和socket两行内容修改为
datadir=/home/data/mysql 和socket=/home/data/mysql/mysql.sock
修改启动文件: vim /etc/init.d/mysqld,将get_mysql_option mysqld datadir "/var/lib/mysql"引号中内容修改为/home/data/mysql
启动数据库服务:service mysqld start