Linux环境下Mysql安装

  • A+
所属分类:系统文档

Linux环境下Mysql安装

查看系统是否已安装cmakebisongccgcc-c++

 [[email protected] src]# yum list installed | grep ‘cmake\|bison*\|gcc\|gcc-c++\|ncurses*’

 [[email protected] src]# yum list installed | grep -e ‘cmake’ -e ‘bison*’ -e ‘gcc’ -e ‘gcc-c++’ -e ‘ncurses*’

若发现未安装,可使用以下yum安装命令:

 [[email protected] src]# yum install -y bison bison-devel ncurses ncurses-devel zlib zlib-devel libxml* openssl openssl-devel gcc gcc-c++ cmake

或逐个安装:

1.1.  安装 bison

[[email protected] src]# wget http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz

[[email protected] src]# tar -zxvf bison-2.5.tar.gz

[[email protected] src]# cd bison-2.5

[ro[email protected] bison-2.5]#./configure

[[email protected] bison-2.5]# make

[[email protected] bison-2.5]# make install

 

1.2.  安装 gcc

[[email protected] src]# wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.1/gcc-4.6.1.tar.gz

[[email protected] src]# tar -zxvf gcc-4.6.1.tar.gz

[[email protected] src]# cd gcc-4.6.1

[[email protected] gcc-4.6.1]#./configure

[[email protected] gcc-4.6.1]# make

[[email protected] gcc-4.6.1]# make install

 

1.3.  安装 gcc-c++

[[email protected] src]# wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.1/gcc-g++-4.6.1.tar.gz

[[email protected] src]# tar -zxvf gcc-g++-4.6.1.tar.gz

[[email protected] src]# cd gcc-g++-4.6.1

[[email protected] gcc-g++-4.6.1]#./configure

[[email protected] gcc-g++-4.6.1]# make

[[email protected] gcc-g++-4.6.1]# make install

1.4.  安装ncurses

[[email protected] src]# wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz

[[email protected] src]# tar -zxvf ncurses-5.9.tar.gz

[[email protected] src]# cd ncurses-5.9

[[email protected] ncurses-5.9]#./configure

[[email protected] ncurses-5.9]# make

[[email protected] ncurses-5.9]# make install

 

1.5.  安装ncurses-devel

[[email protected] src]# yum install -y ncurses-devel

 

1.6.  安装cmake

[[email protected] src]# wget http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz

[[email protected] src]# tar -zxvf cmake-2.8.6.tar.gz

[[email protected] src]# cd cmake-2.8.6

[[email protected] cmake-2.8.6]#./configure

[[email protected] cmake-2.8.6]# make

[[email protected] cmake-2.8.6]# make install

 

1.7.  安装Mysql

下载mysql

[[email protected] src]#wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.20.tar.gz/from/http://mysql.ntu.edu.tw/

 

新建一个名为mysql的用户组

 [[email protected] src]# groupadd mysql

 

mysql用户组下新建一个名为mysql的用户

 [[email protected] src]# useradd -r -g mysql mysql

 

编译安装(mysql5.5以后是通过cmake来编译的,即5.5版本之后MySQL自动化建构工具从GUN Autotools换成了跨平台的Cmake系统)

[[email protected] src]# yum remove mysql[[email protected] src]#tar -zxvf mysql-5.5.20.tar.gz[[email protected] src]#cd mysql-5.5.20

[[email protected] mysql-5.5.20]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data

[[email protected] mysql-5.5.20]#make && make install

[[email protected] mysql-5.5.20]# cd /usr/local/mysql

[[email protected] mysql]# chown -R mysql .

[[email protected] mysql]# chgrp -R mysql .

[[email protected] mysql]# chown -R root .

[[email protected] mysql]# cp support-files/my-huge.cnf /etc/my.cnf

[[email protected] mysql]# scripts/mysql_install_db –user=mysql #初始化数据库

 

安装的过程中遇到了一个ERROR

CMake Error at cmake/readline.cmake:83 (MESSAGE):

  Curses library not found.  Please install appropriate package,

 

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

 

这是因为系统中缺少ncurses-devel执行命令:

 [[email protected] mysql-5.5.20]# yum install -y ncurses-devel

安装之,然后

 [[email protected] mysql-5.5.20]# rm CMakeCache.txt[[email protected] mysql-5.5.20]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data

……

 

启动mysql

 [[email protected] mysql]# /usr/local/mysql/bin/mysqld_safe –user=mysql &[[email protected] mysql]# netstat -tnl|grep 3306 #查看mysql是否启动成功或:

[[email protected] mysql]# ps -ef |grep mysql #查看mysql是否启动成功

 

简单方便启动mysql的方法

 [[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysql.server # #mysql的启动服务添加到系统服务中[[email protected] mysql]# service mysql.server start #启动mysql[[email protected] mysql]# service mysql.server stop #停止mysql

[[email protected] mysql]# service mysql.server restart #重启mysql

 

mysql服务添加到开机启动项,让mysql服务开机启动

 [[email protected] mysql]# chkconfig –add mysql.server

重启机器后,mysql服务就会自动启动了

 

添加Mysql的环境变量

[[email protected] mysql]# vi /etc/profile

在最后加上如下一行代码:

将其打开把export PATH=$PATH:/usr/local/mysql/bin这句放在“export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC”的上一行

立即生效环境配置,不需要重启,用下命令:

[[email protected] mysql]# . /etc/profile

 

mysql安全设置

设置root帐户的密码

 [[email protected] mysql]# /usr/local/mysql/bin/mysqladmin -u root password ‘bovin’

 

修改root密码

 [[email protected] src]# mysqladmin -uroot -pbovin password finet0716080410(mysql状态下)mysql> use mysql;

mysql>UPDATE user SET password=PASSWORD(‘finet0716080410’) WHERE user=’root’;

mysql>FLUSH PRIVILEGES;

(mysql状态下)

mysql>SET PASSWORD FOR root=PASSWORD(‘finet0716080410’);

 

删除本机匿名连接的空密码帐号

 [[email protected] src]#/usr/local/mysql/bin/mysql -u root -p 或:[[email protected] src]# mysql -u root -p

#然后输入上面设置的密码,登录后在mysql的命令行中执行:

mysql> use mysql;

// mysql> update user set password=’bovin’ where host = ’127.0.0.1′;

mysql> delete from user where user=”";

mysql> delete from user where password=”";

mysql> flush privileges;

mysql> quit

 

增加一个用户bovin密码为abc123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:

[[email protected] src]# mysql -u root -p#然后输入上面设置的密码,登录后在mysql的命令行中执行:mysql> use mysql;

mysql> grant select,insert,update,delete on *.* to [email protected]”%” Identified by “abc123″;

mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]”%” IDENTIFIED BY ‘finet0716080410′ WITH GRANT OPTION;

mysql> flush privileges;

mysql> quit

 

查看mysql服务器端的版本:

[[email protected] src]# mysql -u root -p#然后输入上面设置的密码,登录后在mysql的命令行中执行:mysql> select version();

+————+

| version()  |

+————+

| 5.5.20-log |

+————+

1 row in set (0.00 sec)

 

 

 

查看mysql的连接数

 [[email protected] mysql]# /usr/local/mysql/bin/mysqladmin -uroot -proot4bovin processlist -v

看一下当前占CPU高的时候哪些语句在执行

然后再对那些语句添加索引,一般都会降下来的

 

查看当前所有连接的详细资料:

 

 [[email protected] mysql]# /usr/local/mysql/bin/mysqladmin -uroot -proot4bovin processlist+——–+———+——————–+————-+———+——-+—————-+—————————————-+| Id     | User    | Host               | db          | Command | Time  | State          | Info                                   |

+——–+———+——————–+————-+———+——-+—————-+—————————————-+             |                                        |

| 357529 | company | 192.168.1.12:50175 | finet_stock | Query   | 5920  | Writing to net | SELECT * FROM `GA_CORP_DEALIN_COMMENT` |             |                                        |

| 357591 | company | 192.168.1.12:50202 | discuzx     | Query   | 3088  | Writing to net | SELECT * FROM `dx_home_blogfield`      |

| 370942 | root    | localhost          |             | Query   | 0     |                | show processlist                       |

+——–+———+——————–+————-+———+——-+—————-+—————————————-+

 

只查看当前连接数(Threads就是连接数.):

 [[email protected] mysql]# /usr/local/mysql/bin/mysqladmin -uroot -proot4bovin statusUptime: 701020  Threads: 9  Questions: 11224935  Slow queries: 47  Opens: 4568  Flush tables: 1  Open tables: 512  Queries per second avg: 16.012

 

修改mysql最大连接数:

打开/etc/my.cnf (Linux环境)my.ini(Windows环境),修改max_connections=100(默认为100)

SQL语句查看连接数:

[[email protected] src]# mysql -u root -p#然后输入上面设置的密码,登录后在mysql的命令行中执行:mysql> show processlist;

 

如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。

show processlist;只列出前100条,如果想全列出请使用show full processlist;

 

 

Mysql 最大并发连接数设置

mysql 默认的最大并发连接为100,默认的连接数无法满足大量client 连接的请求.

但是可以通过以下方式改变,使用root用户登录mysql 系统

[[email protected] src]# mysql -u root -p#然后输入上面设置的密码,登录后在mysql的命令行中执行:mysql> show variables like ‘max_connections’;

+—————–+——-+

| Variable_name   | Value |

+—————–+——-+

| max_connections | 100   |

+—————–+——-+

1 row in set (0.00 sec)

 

在不需要重启的情况下.通过以下命令更改为300

mysql>set global max_connections = 300;Query OK, 0 rows affected (0.00 sec)

 

 

 

为了保证mysql 重启能够生效,还需要编辑 /etc/my.cnf (默认)

[mysqld] 这个字段下面添加如下:

max_connections = 300

 

以上完成之后,下次重启就会使用新的参数。

 

 

ps: 查询时使用的是show variables的话,会发现设置好像并没有生效,这是因为单纯使用show variables的话就等同于使用的是show session variables,查询的是会话变量,只有使用show global variables,查询的才是全局变量。

如果仅仅想修改会话变量的话,可以使用类似set wait_timeout=10;或者set session wait_timeout=10;这样的语法。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: