您的位置:首页 > 运维架构 > Linux

linux 下安装mysql--tar.gz和rmp安装

2013-12-07 23:00 411 查看
先准备mysql的源码包:mysql-5.6.10.tar.gz

源码包依赖的包比较多,所以要先下载几个包:包括:cmake-2.8.11.2.tar.gz, ncurses-5.9,autoconf-2.13.tar.gz,

或者使用注:请自行配置好yum源,不过centos默认的在线yum源也挺好用

# yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex*libxml* ncurses* libmcrypt* libtool-ltdl-devel* make cmake--必要软件包安装

# useradd mysql

# tar -zxvf mysql-5.6.10.tar.gz

# cd mysql-5.6.10

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6 --设置安装路径

# make && make install --编译安装

# chown -R mysql:mysql /usr/local/mysql5.6 --设置目录权限

# /usr/local/mysql5.6/scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql5.6 --datadir=/usr/local/mysql5.6/data--安装db

--以下为设置开机自启及启动服务

# cp /usr/local/mysql5.6/support-files/mysql.server /etc/rc.d/init.d/mysql

# cp /usr/local/mysql5.6/support-files/my-default.cnf /etc/my.cnf

# chkconfig --add mysql && chkconfig mysql on

# service mysql start

附一些mysql的基本操作

一、连接mysql。

格式: mysql -h主机地址 -u用户名 -p用户密码

首先进入安装目录

# cd /usr/local/mysql5.6/bin

# ./mysql -uroot -p

输入密码,如果刚安装好mysql,超级用户root是没有密码的,提示符变为mysql>

查看数据库

mysql> show databases;

选择数据库

mysql> use mysql

查看数据库中表

mysql> show tables;

配置环境变量

export PATH=/usr/local/mysql5.6/bin:$PATH

连接到远程主机上的mysql。远程IP为:192.168.11.98用户名root,密码abcd123 则键入以下命令:

mysql -h192.168.11.98 -uroot -pabcd123

(注:u与root可以不用加空格,其它也一样)

3、 查询数据库状态

mysql> status;

4、 退出mysql命令:exit(回车)

二、用户管理

设置默认密码

格式:mysqladmin -u用户名 -p旧密码 password 新密码

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

# mysqladmin -uroot password '123123'

修改密码

第一种方法

将root的密码改为djg345

# mysqladmin -uroot -p123123 password djg345

以下方法需在mysql>提示符下操作

第二种方法 更改user01密码为user01pwd

mysql> SET PASSWORD FOR user01=PASSWORD('user01pwd');

mysql> flush privileges;

第三种方法 更改user01密码为user01pwd

mysql> REPLACE INTO mysql.user (Host,User,Password)VALUES(%,user01,PASSWORD(user01pwd));

mysql> flush privileges;

第四种方法 grant主要用于设置权限

mysql> GRANT USAGE ON *.* TO user01@'%' IDENTIFIED BY user01pwd;

创建用户 user01密码user01pwd

mysql> INSERT INTO mysql.user (Host,User,Password)VALUES(%,user01,PASSWORD(user01pwd));

mysql> FLUSH PRIVILEGES;

设置用户权限

给予nconf用户对nconf库所有权限

mysql> grant all privileges on nconf.* to nconf@'%' identifiedby 'nconf';

mysql> flush privileges;

需要注意的是我用之前版本mysql,配置数据库默认编码是在 [mysqld]下加 default-character-set=utf8

而 mysql 5.5.17用这个配置,似乎是错的,将导致 mysql 不能正常启动。将配置改为 character-set-server=utf8 即可。

报错解决办法:

1、

[ERROR] /usr/local/mysql/libexec/mysqld: Error while setting value '@MYSQL_TCP_PORT@' to 'port'

解决办法:看看/etc/my.cnf是否存在,里面是否使用的配置模板,而没有修改为实际的配置选项

2、报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost

报错: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身份登录啦!


还有一种在小红帽系统上 使用rpm软件安装,


一、卸载原来的mysql:

卸载一:

输入:

#rpm -qa | grep -i mysql

显示:

mysql-libs-5.1.52-1.el6_0.1.i686

卸载方法:

yum -y remove mysql-libs-5.1.52-1.el6_0.1.i686

卸载二:

输入:

#rpm -qa | grep -i mysql

显示:

MySQL-client-5.1.62-1.glibc23.i386

MySQL-server-5.1.62-1.glibc23.i386

卸载方法:

#rpm -ev MySQL-client-5.1.62-1.glibc23.i386 MySQL-server-5.1.62-1.glibc23.i386

二、安装MySQL服务器端:

安装文件:MySQL-server-5.1.62-1.glibc23.i386.rpm

# rpm -ivh /software/mysql/MySQL-server-5.1.62-1.glibc23.i386.rpm

这是在/usr/share/mysql 目录下生成一些 文件,其中有一个文件名为:my-medium.cnf 将其拷贝到/etc/my.cnf中

# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

现在就安装完了,可以看看他运行的进程:

# ps -ef | grep mysql

三、安装MySQL客户端:

# rpm -ivh /software/mysql/MySQL-client-5.1.62-1.glibc23.i386.rpm

现在就安装客户端成功了,可以看看关于MySQL一些文件:

# ls /usr/bin/mysql*

四、登录mysql:

刚开始装上mysql时是没有密码的,输入:

# mysql

就可登录到mysql数据库上了。

如果登陆时候提示:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

(1)确定你的mysql.sock是不是在那个位置,

mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock

(2)如果是权限问题,则先改变权限 #chown -R mysql:mysql /var/lib/mysql

最终启动MYSQL试试: /etc/init.d/mysql
start

五、设置MySQL密码:

# mysqladmin -u root password 123456

这样就将mysql中用户名为root密码设为123456

如果没有成功,提示:ERROR
1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

按照以下步骤解决
# /etc/init.d/mysql stop

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;

mysql> FLUSH PRIVILEGES;

mysql> quit

# /etc/init.d/mysql restart

# mysql -uroot -p

Enter password: <输入新设的密码newpassword>

mysql>

最后我们说明下一些常见的设置。

修改MySQL默认数据库的编码

mysql> set character_set_client=utf8 ;

mysql> set character_set_connection=utf8 ;

mysql> set character_set_database=utf8 ;

mysql> set character_set_database=utf8 ;

mysql> set character_set_results=utf8 ;

mysql> set character_set_server=utf8 ;

mysql> set character_set_system=utf8 ;

mysql> show variables like 'character%';

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

修改mysql的表大小写

Windows上MySQL市不区分表名大小写的,所以很正常。但是在Linux上由于MySQL默认是却分大小写的,所以程序会出错。

最简单的方法当然是修改Linux上MySQL的配置文件,修改为忽略大小写就可以了。

修改办法是:

vi /etc/my.cnf

在[mysqld]下加入一行:

lower_case_table_names=1

这句话就表示不区分大小写表名。

重启一下MySQL服务再试试看看。

用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,

至于为什么没有这个文件而MySQL却也能正常启动和作用,在点有两个说法,

第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,

第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL,

解决方法,只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。

开放3306端口的解决步骤如下:

 1、修改/etc/sysconfig/iptables文件,增加如下一行:

  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

重启 iptables

service iptables restart

 2、重启防火墙,这里有两种方式重启防火墙

使用Navicat远程访问

第一次访问时候有可能出现“登录出现1130 is not allowed
to connect to this MySql server”问题,解决方法:

然后你想root用户名使用root密码从任何主机连接到mysql服务器的话。
运行命令:mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

如果你想允许用户root从ip为192.168.1.3的主机连接到mysql服务器,并使用root作为密码

运行命令:mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;

上面的命令创建一个可以从任意机器以root登录的超级账号,口令是root。这样,就可以使用方便的图形工具(navicat for mysql)进行登录和操作,包括修改root的口令。

使用YUM方式安装mysql(感觉很简单)

安装mysql

yum -y install mysql-server
修改配置文件,修改编码:
vim /etc/my.cnf
[mysqld]

character-set-server = utf8
再加一行:
[mysql]

default-character-set = utf8
chkconfig --list mysqld
设置开机启动:
chkconfig mysqld on
服务运行:
service mysqld start
service mysqld status
登陆mysql,设置密码
# mysqladmin -u root password 123456

或:
mysql -u root
mysql> use mysql

mysql> select user,host,password from mysql.user;  ← 查看用户信
mysql> update user set password=password(‘123456') where user='root';
mysql> flush privileges;
mysql> quit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: