Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb
2013-08-23 15:40
567 查看
前几天一直在弄这个。本来根据官网的教程一步一步下来之后mysql是可以的,但是在安装了Python-MySQLdb之后发现mysql就不行了,已启动就会出现“The MySQL server quit without updating the PID file(/usr/local/bin/mysql/data/XXXXX.pid"错误或者出现”MySQL server cannot be found(/usr/bin/mysqld_safe)“错误。
后来发现是一个/etc/mysql/my.cnf这个文件导致的,这个文件是安装了Python-MySQLdb之后才会出现的,除非你安装mysql是把my-default.cnf拷贝到这个位置了。安装好后Python-MySQLdb之后的/etc/mysql/my.cnf文件的内容应该如下:
至于如何修改以上文件从而让mysql正常启动?接下来从我安装mysql和python-MySQLdb的过程说起。当然如果你选择了使用apt-get install python-mysqldb mysql-server是不会出现上述错误的。
一、MySQL源码安装
在这这里我提供自动化脚本以参考,该脚本已经过我在ubuntu12.04下测试:
cmake编译参数说明:
-DCMAKE_INSTALL_PREFIX //安装目录
-DINSTALL_DATADIR //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci//校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
#make clean
# rm-f CMakeCache.txt
# rm-rf /etc/my.cnf
至此,mysql是可以正常运作的。接下来我们安装Python-MySQLdb。
二、Python-MySQLdb源码安装
如自动化脚本所示:
如果此时启动mysql,则会出现文章开始时所出现的错误。这些错误是由于/etc/mysql/my.cnf中的配置选项不匹配有关的。
接下来,我们需要对该文件作出一些修改,即可使mysql正常启动,脚本如下所示:
此时即可正常启动mysql。
后来发现是一个/etc/mysql/my.cnf这个文件导致的,这个文件是安装了Python-MySQLdb之后才会出现的,除非你安装mysql是把my-default.cnf拷贝到这个位置了。安装好后Python-MySQLdb之后的/etc/mysql/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 = 3306 socket = /var/run/mysqld/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 = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/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 = /var/log/mysql/mysql.log #general_log = 1 # # Error log - should be very few entries. # log_error = /var/log/mysql/error.log # # 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. # !includedir /etc/mysql/conf.d/
至于如何修改以上文件从而让mysql正常启动?接下来从我安装mysql和python-MySQLdb的过程说起。当然如果你选择了使用apt-get install python-mysqldb mysql-server是不会出现上述错误的。
一、MySQL源码安装
在这这里我提供自动化脚本以参考,该脚本已经过我在ubuntu12.04下测试:
export SRCDIR="/home/XXXXX" #自己定义 export INSTALLDIR="/usr/local/bin"#自己定义 cd $SRCDIR apt-get install -y g++ gcc make libpcre3 zlib1g libbz2-dev automake cmake perl libncurses5-dev bison #安装依赖 wget http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.12.tar.gz #下载源代码 #创建mysql用户及用户组 groupadd mysql useradd -g mysql mysql #创建mysql的安装目录以及数据库数据存放目录 mkdir -p $INSTALLDIR/mysql mkdir -p $INSTALLDIR/mysql/data #安装mysql tar -zxvf mysql-5.6.12.tar.gz cd mysql-5.6.12 cmake . -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/mysql -DMYSQL_DATADIR=$INSTALLDIR/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 make make install #设置目录权限 cd $INSTALLDIR/mysql chown -R root:mysql . #把当前目录中所有文件的所有者所有者设为root,所属组为mysql chown -R mysql:mysql data #将配置拷贝到全局目录下 cp support-files/my-default.cnf /etc/my.cnf #创建系统数据库的表 #scripts/mysql_install_db --user=mysql scripts/mysql_install_db --user=mysql --basedir=$INSTALLDIR/mysql --datadir=$INSTALLDIR/mysql/data #设置环境变量 cat > /root/export.sh << EOF export PATH=$PATH:$INSTALLDIR/mysql/bin:$INSTALLDIR/mysql/lib EOF echo 'source /root/export.sh' >> /root/.bashrc source /root/export.sh #将mysql的启动服务添加到系统服务中 cp /usr/local/bin/mysql/support-files/mysql.server /etc/init.d/mysql/etc/init.d/mysql start #修改MySQL的root用户的密码以及打开远程连接 mysql -u root mysql use mysql; desc user; GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; update user set Password = password(‘your mysql password’) where User='root'; select Host,User,Password from user where User='root'; flush privileges; exit /etc/init.d/mysql stop
cmake编译参数说明:
-DCMAKE_INSTALL_PREFIX //安装目录
-DINSTALL_DATADIR //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci//校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
#make clean
# rm-f CMakeCache.txt
# rm-rf /etc/my.cnf
至此,mysql是可以正常运作的。接下来我们安装Python-MySQLdb。
二、Python-MySQLdb源码安装
如自动化脚本所示:
cd $SRCDIR apt-get install -y python-dev libmysqld-dev wget http://nchc.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz tar -zxvf MySQL-python-1.2.3.tar.gz cd MySQL-python-1.2.3 sed -i -e "s/#mysql_config = \/usr\/local\/bin\/mysql_config/mysql_config=\/usr\/local\/bin\/mysql\/bin\/mysql_config/g" ./site.cfg python setup.py build python setup.py install ln -s $INSTALLDIR/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
如果此时启动mysql,则会出现文章开始时所出现的错误。这些错误是由于/etc/mysql/my.cnf中的配置选项不匹配有关的。
接下来,我们需要对该文件作出一些修改,即可使mysql正常启动,脚本如下所示:
cat > /etc/mysql/my.cnf << EOF [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = $INSTALLDIR/mysql datadir = $INSTALLDIR/mysql/data tmpdir = /tmp lc-messages-dir = $INSTALLDIR/mysql/share skip-external-locking skip-name-resolve bind-address = 0.0.0.0 key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 myisam-recover = BACKUP query_cache_limit = 1M query_cache_size = 16M log_error =$INSTALLDIR/mysql/data/log/mysql/error.log expire_logs_days = 10 max_binlog_size = 100M [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] [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. # !includedir /etc/mysql/conf.d/ EOF
此时即可正常启动mysql。
相关文章推荐
- Ubuntu 12.04 安装python-mysqldb
- ubuntu 安装MySQL-python(MySQLdb)
- Ubuntu 12.04 安装mysql及mysql-python
- ubuntu上安装python的mysql驱动 MySQLDb出现的问题
- 教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql
- Ubuntu下安装MySQLdb(mysql-python)的过程
- ubuntu14.04下安装MySQL-server 以及MySQLdb模块
- ubuntu 12.04安装部署环境nginx,tomcat,mysql以及开机启动备忘
- ubuntu安装mysql,redis,python-mysqldb
- ubuntu 12.04上MySQL 5.6 cmake 编译安装
- win7下安装python-mysqldb模块以及还报No module named MYSQLdb错误的原因
- Ubuntu下Python的MySQLdb的安装以及常见问题的解决
- ubuntu 12.04 安装mysql 5.6
- linux(centos/ubuntu) python27 mysql安装 MySQLdb
- (三)ubuntu 12.04安装mysql5.6
- 在Ubuntu上安装MySQLdb(mysql-python)
- Ubuntu 12.04 安装mysql及mysql-python
- Ubuntu 12.04 安装mysql及mysql-python 分类: python Module ubuntu database 2014-01-23 10:07 615人阅读 评论(0) 收藏
- Ubuntu 12.04 安装mysql及mysql-python