- A+
Linux环境下Mysql安装
查看系统是否已安装cmake、bison、gcc、gcc-c++
[root@os11728 src]# yum list installed | grep ‘cmake\|bison*\|gcc\|gcc-c++\|ncurses*’ |
或
[root@os11728 src]# yum list installed | grep -e ‘cmake’ -e ‘bison*’ -e ‘gcc’ -e ‘gcc-c++’ -e ‘ncurses*’ |
若发现未安装,可使用以下yum安装命令:
[root@os11728 src]# yum install -y bison bison-devel ncurses ncurses-devel zlib zlib-devel libxml* openssl openssl-devel gcc gcc-c++ cmake |
或逐个安装:
1.1. 安装 bison
[root@os11728 src]# wget http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz [root@os11728 src]# tar -zxvf bison-2.5.tar.gz [root@os11728 src]# cd bison-2.5 [root@os11728 bison-2.5]#./configure [root@os11728 bison-2.5]# make [root@os11728 bison-2.5]# make install |
1.2. 安装 gcc
[root@os11728 src]# wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.1/gcc-4.6.1.tar.gz [root@os11728 src]# tar -zxvf gcc-4.6.1.tar.gz [root@os11728 src]# cd gcc-4.6.1 [root@os11728 gcc-4.6.1]#./configure [root@os11728 gcc-4.6.1]# make [root@os11728 gcc-4.6.1]# make install |
1.3. 安装 gcc-c++
[root@os11728 src]# wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.1/gcc-g++-4.6.1.tar.gz [root@os11728 src]# tar -zxvf gcc-g++-4.6.1.tar.gz [root@os11728 src]# cd gcc-g++-4.6.1 [root@os11728 gcc-g++-4.6.1]#./configure [root@os11728 gcc-g++-4.6.1]# make [root@os11728 gcc-g++-4.6.1]# make install |
1.4. 安装ncurses
[root@os11728 src]# wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz [root@os11728 src]# tar -zxvf ncurses-5.9.tar.gz [root@os11728 src]# cd ncurses-5.9 [root@os11728 ncurses-5.9]#./configure [root@os11728 ncurses-5.9]# make [root@os11728 ncurses-5.9]# make install |
1.5. 安装ncurses-devel
[root@os11728 src]# yum install -y ncurses-devel |
1.6. 安装cmake
[root@os11728 src]# wget http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz [root@os11728 src]# tar -zxvf cmake-2.8.6.tar.gz [root@os11728 src]# cd cmake-2.8.6 [root@os11728 cmake-2.8.6]#./configure [root@os11728 cmake-2.8.6]# make [root@os11728 cmake-2.8.6]# make install |
1.7. 安装Mysql
下载mysql
[root@os11728 src]#wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.20.tar.gz/from/http://mysql.ntu.edu.tw/ |
新建一个名为mysql的用户组
[root@os11728 src]# groupadd mysql |
在mysql用户组下新建一个名为mysql的用户
[root@os11728 src]# useradd -r -g mysql mysql |
编译安装(mysql5.5以后是通过cmake来编译的,即5.5版本之后MySQL自动化建构工具从GUN Autotools换成了跨平台的Cmake系统)
[root@os11728 src]# yum remove mysql[root@os11728 src]#tar -zxvf mysql-5.5.20.tar.gz[root@os11728 src]#cd mysql-5.5.20
[root@os11728 mysql-5.5.20]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data [root@os11728 mysql-5.5.20]#make && make install [root@os11728 mysql-5.5.20]# cd /usr/local/mysql [root@os11728 mysql]# chown -R mysql . [root@os11728 mysql]# chgrp -R mysql . [root@os11728 mysql]# chown -R root . [root@os11728 mysql]# cp support-files/my-huge.cnf /etc/my.cnf [root@os11728 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,执行命令:
[root@os11728 mysql-5.5.20]# yum install -y ncurses-devel |
安装之,然后
[root@os11728 mysql-5.5.20]# rm CMakeCache.txt[root@os11728 mysql-5.5.20]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data |
……
启动mysql
[root@os11728 mysql]# /usr/local/mysql/bin/mysqld_safe –user=mysql &[root@os11728 mysql]# netstat -tnl|grep 3306 #查看mysql是否启动成功或:
[root@os11728 mysql]# ps -ef |grep mysql #查看mysql是否启动成功 |
简单方便启动mysql的方法
[root@os11728 mysql]# cp support-files/mysql.server /etc/init.d/mysql.server # #将mysql的启动服务添加到系统服务中[root@os11728 mysql]# service mysql.server start #启动mysql[root@os11728 mysql]# service mysql.server stop #停止mysql
[root@os11728 mysql]# service mysql.server restart #重启mysql |
或
将mysql服务添加到开机启动项,让mysql服务开机启动
[root@os11728 mysql]# chkconfig –add mysql.server |
重启机器后,mysql服务就会自动启动了
添加Mysql的环境变量
[root@os11728 mysql]# vi /etc/profile |
在最后加上如下一行代码:
将其打开把export PATH=$PATH:/usr/local/mysql/bin这句放在“export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC”的上一行
立即生效环境配置,不需要重启,用下命令:
[root@os11728 mysql]# . /etc/profile |
mysql安全设置
设置root帐户的密码
[root@os11728 mysql]# /usr/local/mysql/bin/mysqladmin -u root password ‘bovin’ |
修改root密码
[root@os11728 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’); |
删除本机匿名连接的空密码帐号
[root@os11728 src]#/usr/local/mysql/bin/mysql -u root -p 或:[root@os11728 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,然后键入以下命令:
[root@os11728 src]# mysql -u root -p#然后输入上面设置的密码,登录后在mysql的命令行中执行:mysql> use mysql;
mysql> grant select,insert,update,delete on *.* to bovin@”%” Identified by “abc123″; mysql> GRANT ALL PRIVILEGES ON *.* TO root@”%” IDENTIFIED BY ‘finet0716080410′ WITH GRANT OPTION; mysql> flush privileges; mysql> quit |
查看mysql服务器端的版本:
[root@os11728 src]# mysql -u root -p#然后输入上面设置的密码,登录后在mysql的命令行中执行:mysql> select version();
+————+ | version() | +————+ | 5.5.20-log | +————+ 1 row in set (0.00 sec) |
查看mysql的连接数
[root@os11728 mysql]# /usr/local/mysql/bin/mysqladmin -uroot -proot4bovin processlist -v |
看一下当前占CPU高的时候哪些语句在执行
然后再对那些语句添加索引,一般都会降下来的
查看当前所有连接的详细资料:
[root@os11728 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就是连接数.):
[root@os11728 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语句查看连接数:
[root@os11728 src]# mysql -u root -p#然后输入上面设置的密码,登录后在mysql的命令行中执行:mysql> show processlist; |
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
show processlist;只列出前100条,如果想全列出请使用show full processlist;
Mysql 最大并发连接数设置
mysql 默认的最大并发连接为100,默认的连接数无法满足大量client 连接的请求.
但是可以通过以下方式改变,使用root用户登录mysql 系统
[root@os11728 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;这样的语法。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫