最近由于工作的需要,要在centos上安装MYSQL服务器。作为一名小兵中的小兵,当然是没有root权限的,为了能够使用mysql,只能使用源码安装了(因为binary安装方式似乎需要root access的)

一、Mysql下载

mysql.5.6.24

二、解压

tar zxvf mysql.tar.gz

三、配置

参考了许多地方,最后稀里糊涂进行了一下配置,关键是安装的位置,数据库的位置,配置文件的位置这三个吧

cmake ./ -DCMAKE_INSTALL_PREFIX=$HOME/local/mysql \

-DMYSQL_DATADIR=$HOMElocal/mysql/data \

-DSYSCONFDIR=$HOME/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1    \

-DMYSQL_UNIX_ADDR=$HOME/local/tmp/mysqld.sock \

-DMYSQL_TCP_PORT=8812  \

-DENABLED_LOCAL_INFILE=1   \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all   \

-DDEFAULT_CHARSET=utf8                \

-DDEFAULT_COLLATION=utf8_general_ci

四、安装

make && make install

五、安装数据库

这里实际上刚开始一致不太成功,原因是mysql一直去找一个写默认的位置,当然是没有写的权限的,最后在[1]得到了非常大的启发。

实际上,为了屏蔽掉这些默认的设置我们只需要找一个配置文件作为这些命令的输入就可以了

./scripts/mysql_install_db --defaults-file=~/my.cnf --user=martin --basedir=$HOME --datadir=/home/martin/sql_data --socket=/home/martin/socket

上面的参数value要具体改为我们自己的value

上面的那个my.cnf文件非常关键,我们最好考一个安装成功之后再一定的目录下面

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html # This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3666
socket = /home/guofeng/local/etc/mysql/mysqld.sock # Here is entries for some specific programs
# The following values assume you have at least 32M ram # This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /home/guofeng/local/etc/mysql/mysqld.sock
nice = 0 [mysqld]
#
# * Basic Settings
#
user = guofeng
pid-file = /home/guofeng/local/etc/mysql/mysql.pid
socket = /home/guofeng/local/etc/mysql/mysqld.sock
port = 3666
basedir = /home/guofeng/local/mysql
datadir = /home/guofeng/local/etc/mysql/datadir
tmpdir = /home/guofeng/local/etc/mysql/tmp
lc-messages-dir = /home/guofeng/local/etc/mysql/
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
general_log_file = /home/guofeng/local/etc/mysql/datadir/mysql.log
general_log = 1
#
# Error log - should be very few entries.
#
log_error = /home/guofeng/local/etc/mysql/datadir/log.err
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem [mysqldump]
quick
quote-names
max_allowed_packet = 16M [mysql]
#no-auto-rehash # faster start of mysql but no tab completition [isamchk]
key_buffer = 16M #
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#

六、启动

./mysqld_safe --defaults-file=/home/guofeng/local/etc/mysql/my.cnf --skip-grant-tables&

ps -ef | grep mysql

七、进入数据库

mysql -u root -p

随便输入一个密码

进去之后创建一个新的用户[2]

创建用户,授权.
Sql代码
create user lzquan identified by '123456'; grant all privileges on *.* to 'lzquan'@'localhost' identified by '123456'; flush privileges; Sql代码
删除用户,收回权限
Sql代码
delete from mysql.user where user='lzquan' and host='localhost'; revoke all on testuser .* from 'lzquan'@localhost;

八、如何通过ip地址访问数据库?

在实际当中访问数据库,当然要通过ip地址,但是mysql这是如果使用ip地址进行访问就会出现问题。

在[3]中找到了答案。

 

[1] http://superuser.com/questions/209203/how-can-i-install-mysql-on-centos-without-being-root-su

[2] http://blog.knowsky.com/223198.htm

[3] http://www.2cto.com/database/201410/346908.html

A very cool thing: Install MYSQL from source without root access on LINUX的更多相关文章

  1. install mysql from source and troubleshooting example

    I tried to install MySQL 5.7 from source file and upgrading previous MySQL version to the lastest 5. ...

  2. 在OSX狮子(Lion)上安装MYSQL(Install MySQL on Mac OSX)

    这篇文章简述了在Mac OSX狮子(Lion)上安装MySQL Community Server最新版本v10.6.7的过程. MySQL是最流行的开源数据库管理系统.首先,从MySQL的下载页面上下 ...

  3. How to Install MySQL on CentOS 7

    CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载   # wget http://dev.mysql.com/get/mysql-communit ...

  4. gem install mysql遇到问题。解决方案

    今天遇到的问题,是使用gem install mysql遇到的.报下面的错误 Building native extensions. This could take a while... ERROR: ...

  5. linux install mysql

    sudo apt-get install mysql-server #此处会输入root的密码,设置的密码要记住 sudo apt-get install mysql-client sudo apt- ...

  6. Fedora 24 install MySQL

    Background I have work with mysql on the fedora OS, but currently fedora have no support mysql inste ...

  7. Install MySQL on Mac by Homebrew

    1.  安装mysql brew update brew install mysql 2. 启动mysql mysql.server start 3. 登录mysql mysql -uroot -p ...

  8. yum install mysql

    rpm -qa|grep -i mysqlmysql-libs-5.1.52-1.1.alios6.1.x86_64mysql-5.1.52-1.1.alios6.1.x86_64mysql-deve ...

  9. ubuntu install mysql server method

         recently try to install mysql in my computer so that  I can practise some sql statement on seve ...

随机推荐

  1. AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案

    AndroidStudio导入项目一直卡在Building gradle project info,实际上是因为你导入的这个项目使用的gradle与你已经拥有的gradle版本不一致,导致需要下载该项 ...

  2. 树莓派 3 alsa 声卡驱动

    /boot/config.txt dtparam=i2c_arm=on,audio=on

  3. linux学习笔记——基础命令

    最近看了一些老男孩linux运维视频,挺不错的,特此记录一下 linux组成 gun组件 shell等 linux内核 其他软件 linux主要内核: linux kernel2.2 linux ke ...

  4. shell脚本中的反引号使用 `

    反引号是~的英文切换 在shell脚本中,反引号允许将shell命令的输出赋值给变量. test=`date` 这样shell会执行反引号中的命令.并将执行的结果赋值给变量tests.

  5. ios UILabel在storyBoard或xib中如何在每行文字不显示完就换行

    大家知道怎么用代码让label中的文字换行,只需要 label.numberOfLines = 0; label.text = @"这是第一行啦啦啦啦,\n这是第二行啦啦,\n这是第三行&q ...

  6. 关于 Netty Channel 的 Autoread

    Netty 4 的 Channel 多了一个 autoread 参数, 它的用处是在让 channel 在触发某些事件以后(例如 channelActive, channelReadComplete) ...

  7. 巧妙地用二叉树完成算式计算算法<计算器,二叉树,C++,独辟蹊径>

    #01.引言,我们知道算式计算的问题是栈里面一个非常经典的题目.但是用栈来实现是一个非常麻烦的过程,第一要解决算式判断,是否为符合规则的算式,第二要由中最表达式转化为后缀表达式.这两个部分是栈实现计算 ...

  8. (原创)通用查询实现方案(可用于DDD)[附源码] -- 简介

    [声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3985353.html).   [系列文章] 通用查询实现方案(可用于DDD)[附源码] -- ...

  9. dddddd

    (function(window){ var com = function(box){ this.box = document.querySelector(box); } window.zhangle ...

  10. python hashlib模块

    用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib m=hash ...