首页 > CMS > Phpwind > 正文

PhpWind教程:Linux下mysql常见问题

2024-09-07 15:54:00
字体:
来源:转载
供稿:网友


Linux下mysql常见问题


1、如何使用rpm方式安装mysql? 


首先下载合适的rpm包,例如下载了文档 MySQL-5.0.15-0.i386.rpm


用以下方法安装:


#rpm -ivhU MySQL-5.0.15-0.i386.rpm


通常情况下,安装完这个rpm包后,只具备有mysqld服务功能,其他相关的client程式和研发包还需要另外安装


#rpm -ivhU MySQL-devel-5.0.15-0.i386.rpm


#rpm -ivhU MySQL-client-5.0.15-0.i386.rpm 


2、以redhat linux 9.0为例:
下载文档 mysql-4.1.13.tar.gz
#tar zxf mysql-4.1.13.tar.gz
#cd mysql-4.1.13
#./configure --prefix=/usr/local/mysql --enable-assembler /
--with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data /
--with-unix-socket-path=/tmp/mysql.sock --enable-assembler /
--with-charset=complex --with-low-memory --with-mit-threads
#make
#make install
#groupadd mysql
#useradd -g mysql mysql
#chgrp -R mysql /usr/local/mysql/
#/usr/local/mysql/bin/mysqld_safe --user=mysql &
有什么个性化的配置,能够通过创建 /etc/my.cnf 或 /usr/local/mysql/data/my.cnf,增加相关的参数来实现。

3、忘记MySQL的root密码,怎么修改?
假如 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :PATH_TO_MYSQL/bin/mysqld --skip-grant-tables &
就能够无需密码就进入 MySQL 了。
然后就是
mysql>use mysql
mysql>REPLACE INTO user set password=password("new_pass") where user="root";
mysql>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL
一定注意:很多新手没有用password=password("..."),而是直接password="..."所以改掉密码不好使。

4、为什么mysqld起来了,却无法登录,提示"/var/lib/mysql/mysql.sock"不存在?
这种情况大多数是因为您的mysql是使用rpm方式安装的,他会自动寻找 /var/lib/mysql/mysql.sock 这个文档,
通过unix socket登录mysql。
常见解决办法如下:
1)创建/修改文档 /etc/my.cnf,至少增加/修改一行
[mysql]
[client]
socket = /tmp/mysql.sock
#在这里写上您的mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下
2)指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式
#mysql -h127.0.0.1 -uuser -ppassword
3)为 mysql.sock 加个连接,比如说实际的mysql.sock在 /tmp/ 下,则
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可

5、如何修改mysql用户密码?
大致有2种方法:
1)mysql>mysql -uroot -pxxx mysql
mysql>REPLACE INTO user set password=password('new_password') where user='user';;
mysql>flush privileges;
2)格式:mysqladmin -u用户名 -p旧密码 password 新密码
#mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就能够省略了。

6、如何新增一个mysql用户?
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1、增加一个用户test1密码为abc,让他能够在任何主机上登录,并对任何数据
库有查询、插入、修改、删除的权限。首先,用以root用户连入MYSQL,然后键入以下命令:
mysql>grant select,insert,REPLACE INTO,delete on *.* to test1@"% " Identified by "abc";
但例1增加的用户是十分危险的,您想如某个人知道test1的密码,那么他就能够在internet上的任何一台电脑上登录您的 mysql数据库并对您的数据能够为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只能够在localhost上登录,并能够对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
mysql>grant select,insert,REPLACE INTO,delete on mydb.* to test2@localhost identified by "abc"; 假如您不想test2有密码,能够再打一个命令将密码消掉。
mysql>grant select,insert,REPLACE INTO,delete on mydb.* to test2@localhost identified by "";
另外,也能够通过直接往user表中插入新纪录的方式来实现。

7、 如何查看mysql有什么数据库?
mysql>show databases;
如何查看数据库下有什么表?
mysql>show tables;

8、如何导出数据?
有几种方法,如下:
1)使用mysqldump
#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 > dump_data_20051206.sql
周详的参数
2)backup to语法
mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';
周详请查看mysql手册
3)mysqlhotcopy
#mysqlhotcopy db_name [/path/to/new_directory]
或 #mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory
或 #mysqlhotcopy db_name./regex/
周详请查看mysql手册
4)select into outfile
周详请查看mysql手册
5)客户端命令行
#mysql -uuser -ppassword -e "sql statements" database > result.txt
以上各种方法中,以mysqldump最常用

9、如何在命令行上执行SQL语句?
#mysql -uuser -ppassword -e "sql statements" database

10、如何导入备份出来的文档?
常见几种方法如下:
1)由mysqldump出来的文档
#mysql -uuser -ppassword [database]
2)文档类型同上,使用source语法
mysql>source /path_to_file/dump.sql;
3)按照一定格式存储的文本文档或csv等文档
#mysqlimport [options] database file1 [file2....]
周详请查看mysql手册
4)文档类型同上,也能够使用load data语法导入
周详请查看mysql手册

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选