CentOS下Mysql安装调试

时间:2022-05-19 21:04:20

一、安装

 
  • 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;
 
  • 忽略大小写:修改/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