Linux下mysql的安装和配置
-----------------------
#tar zxvf mysql-5.0.75.tar.gz
#cd mysql-5.0.75
#./configure --prefix=/usr/local/mysql --with-charset=gb2312 --with-extra-charsets=all
#--prefix指定安装目录,让他支持中文,支持所有语
#依赖包: yum install ncurses-devel
##./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql ##
指定安装路径为/usr/local/mysql,配置文件存放目录/etc,数据库存储目录/var/lib/mysql
------------------------------
#make
#依赖包: yum install gcc 和 yum install -y gcc-c++
如果还不行:是因为gcc-c++是在configure之后安装的,此时只需重新configure后再编译make即可。
------------------------------
#make install
#make clean
------------------------------
#groupadd mysql
#useradd -g mysql mysql
------------------------------
#cd /usr/local/mysql
#cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
-------------------------------
#bin/mysql_install_db --user=mysql #建立基本数据库,必须指明为mysql 用户,只有这一步才能在
usr/local/mysql下出现var目录。出现如下:
手工启动mysql
#cd /usr/local/mysql/bin
#./mysqld_safe &
#/usr/local/mysql/share/mysql/mysql.server start 启动mysql(失败?)
开机自动启动mysql
编辑/etc/rc.d/rc.local文件,加入如下启动命令: /usr/local/mysql/bin/mysqld_safe &
#/usr/local/mysql/share/mysql/mysql.server stop 停止mysql(失败?)
#ps -aux|grep mysql查看进程
#kill id号 ----这是杀mysql进程的,id号是在查看mysql进程里面看的到。
-------------------------------
修改一下mysql的启动的方式,让它以系统守护进程的方式开户服务
#cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld 这 样 下 次 就 可 以 用
/etc/init.d/mysqld start启动了
# ./bin/mysql -uroot -p
Enter password:
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
这个是mysql没启动
# /etc/init.d/mysqld start (或/usr/local/mysql/mysql/share/mysql.server start这样启动)
# ./bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.0.25-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)
-------------------------------
##chkconfig --add mysqld 添加mysql为服务
##chkconfig --del mysqld 删除mysql服务
#service mysqld restart #重新启动服务查看是否生效
#chkconfig --list mysqld #查看是否345运行级别都打开mysql
--------------------------------
完成!以上安装过程同样适用于mysql5的安装
笔者发现mysql5版本在安装后即可直接使用mysql命令进入数据库,而在4版本系列中,mysql路径并没
有放入系统环境变量中,输入mysql系统会报找不到这命令的错误,因此笔者擅自修改了环境变量,把mysql
的路径添加进环境变量中去。
修改profile文件,将mysql的路径添加到PATH变量中去。
vi /etc/profile
if ! echo $PATH | /bin/egrep -q "(^|: )$1($|: )" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH: $1:/usr/local/mysql/bin
else
PATH=$1: $PATH:/usr/local/mysql/bin
或编辑/etc/profile文件:
vi /etc/profile
在文件最后添加如下两行:
PATH=$PATH:/usr/local/mysql/bin
export PATH
执行下面的命令使所做的更改生效:
. /etc/profile
========================================================
报错:1130-host ... is not allowed to connect to this MySql server
解决方法:
1。 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql
后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密
码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT
OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword
作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT
OPTION;
FLUSH PRIVILEGES;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES 使修改生
效.就可以了
另外一种方法,不过我没有亲自试过的,在csdn.net上找的,可以看一下.
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root //这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋
予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT //退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!