专注分享
的技术博客

MySql 的安装和配置

MySql5.6 版本之后,编译 mysql 方式变为 cmake

安装包

yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

创建用户:

groupadd mysql
useradd  -M  -s  /sbin/nologin  -g  mysql  mysql

安装 cmake:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.17.tar.gz
tar -zxf apr-1.4.5.tar.gz
cd /mysql-5.6.17
cmake 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql    
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DSYSCONFDIR=/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1 
-DWITHHOUT_MROONGA_STORAGE_ENGINE=1
-DWITH_DEBUG=0  
-DWITH_MYISAM_STORAGE_ENGINE=1 
-DWITH_MEMORY_STORAGE_ENGINE=1 
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock 
-DENABLED_LOCAL_INFILE=1 
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci
make && make install

设置mysql安装目录的属主和属组

chown -R mysql:mysql /usr/local/mysql

给数据库目录可读可写的权限

chmod  777  -R  /usr/local/mysql/data/

准备环境变量

echo 'PATH=/usr/local/mysql/bin:$PAHT' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

生成数据库文件

cd /usr/local/mysql/
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --user=mysql

准备配置文件

cp /usr/local/mysql/support-files/my-huge.cnf   /etc/my.cnf

准备启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

运行安装mysql 初始化数据库报错

FATAL ERROR: please install the following Perl modules before executing

解决方法 :安装autoconf库

yum-y install autoconf

结果如图所示就代表成功了,可以用 echo $? 查看返回值

现在就可以启动Mysql数据库服务了 它的启动命令是 mysqld

chkconfig --add mysqld
service mysqld start

然后出现大写的 ” SUCCESS “就代表启动成功了,然后用netstat看看它监听的端口吧!

netstat  -anpt  |  grep  mysqld

我们发现它默认监听在 TCP 的” 3306 “端口

我们可以用它自带的 mysql 命令连接进去看看

用 -u 指定用户名 -h 指定主机 -p 来输入密码

/mysql  -u root  -h  localhost  -p

这个root用户可不是系统登陆的root用户,而是mysql服务器中的一个默认用户。由于我们还没有给root用户设置密码,直接回车就可以进如了,如果出现一个” mysql > “就代表成功了。输入” exit “命令退出。

好啦,看看是不是能直接执行mysql命令了呢

接下来就分析一下my.cnf这个配置文件的各参数意义

basedir             mysql的安装目录

datadir             数据库目录

port                 指定服务端口,默认3306 端口

server_id          pid文件路径

socket              套接字

skip-locking                   可避免mysql的外部锁定,降低系统出错几率

skip-name-resolve         禁止mysql对外部连接进行DNS解析,可节约时间 

key_buffer_size              设置索引缓存区大小,合理调节这个数值可以获得更好的索引处理性能,过度调大反而降低性能。参数没有可以自己添加

sort_buffer_size              设置排序缓存区的大小 (每个连接独占)

read_buffer_size             设置查询操作缓存区的大小 (每个连接独占)

join_buffer_size              设置联合查询操作缓存区的大小 (每个连接独占)

max_connections           设置服务器最大连接进程数

mysql的root用户没有密码是非常不安全的,接下来我们为它配置一个密码。注意 要给root用户添加密码是需要启动服务的,请确保你的Mysqld服务处于运行状态

mysqladmin  -u  root  password  "himysql"

如果已经设置了密码,想去修改 就要在命令上添加 -p 参数,-p 参数是用来提醒输入密码的,就和mysql命令一样

mysqladmin  -u  root  password  "himysql"  -p

接下来输入旧密码就可以更改新密码了,再试一试,登陆mysql服务器是不是需要使用密码了呢?

如果是在本机登陆mysql服务器 -h 选项是可以省略的,如果使用root登陆,连-u 参数都可以省略,如果没有密码登录,连 -p 都是可以省略的,比如你第一次启动服务,直接mysql就可以连接上去了

这个mysqladmin是Mysql服务器的管理程序,可用于执行检察配置文件、检查服务状态、关闭服务器、创建数据库以及删除数据库等的系统管理操作。其格式如下:

选项参数
createdb_name创建一个名为db_name的新数据库
 debug将debug信息写入错误日志
 drop   db_name 删除一个名为db_name的数据库
extended-status    显示服务器状态变量和他们的值
 flush-hosts刷新缓存中的所有信息
flush-logs 刷新所有日志信息
flush-privileges  重新载入授权表
flush-status 清除状态变量
flush-tables刷新所有的表
flush-threads  刷新线程的缓存
 ping 显示服务器运行状态
processlist 正在运行服务器线程的列表
passwordnew_password更改密码
shutdown   关闭服务器
 start-slave在从服务器上启动同步
 stop-slave 在从服务器上关闭同步
-uroot  指定用户
-h  localhost指定连接的主机
 -p指定需要输入密码

当我们用mysql命令登陆到服务器后,出现的” mysql > “我们应该怎么操作呢?

在 mysql > 提示符下可以使用SQL语言或命令对数据库进行管理,每条SQL语句都以 ” ; ” 结束,且不区分大小写。用户可以通过上下键调出曾经输入过的命令。

对数据库的操作不外乎增删查改,下面就看看一些很简单的命令吧!

show  databases查看当前存在的数据库
use  数据库名称使用指定的数据库
show  tables查看指定数据库有哪些表
create  database  数据库名称创建新数据库
drop 数据库名称 删除数据库

编译安装Mysql服务器到此也已经差不多了,除了编译时间长了些,按照步骤一步一步下来还是蛮简单的。

赞(0)
未经允许不得转载:极少数博客 » MySql 的安装和配置