机房mysql数据库几乎全部是用编译方式安装,要注意的是,你优化的项越多,编译过程就越长。以下是编译步骤,按下文一步步走,不会出任何差错。
安装之前,请解决和确认最根本的依赖关系:C环境
MYSQL 5 :
tar zxvf mysql-5.1.44.tar.gz
cd mysql-5.1.44
./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql --enable-thread-safe-client --enable-local-infile --with-extra-charsets=all --with-low-memory --without-server --enable-assembler --with-big-tables --with-readline --with-ssl --with-embedded-server --with-innodb --with-charset=utf8 --with-extra-charsets=gb2312 --with-federated-storage-engine --with-plugins=innobase --without-debug --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
可能会出现的错误:
checking for termcap functions library... configure: error: No curses/termcap library found
解决方法:
ncurses-devel.***.rpm 包解决
或者去下载一个ncurses-5.6.tar.gz,
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
tar zxvf ncurses-5.6.tar.gz
cd ncurses-5.6
./configure –prefix=/usr –with-shared –without-debug
make
make install clean
然后再重新编译Mysql进行安装。
make && make install
cp support-files/my-medium.cnf /etc/my.cnf
这里介绍configure的几个参数
--prefix=PREFIX //mysql的安装路径
--sysconfdir=DIR //mysql的系统配置文件,也就是my.cnf
--localedir=DIR //数据库存放位置
--prefix=/opt/mysql 将MySQL安装到目录/opt/mysql下
--with-charset=utf8 指定缺省字符集为utf8
--with-extra-charsets=all 将MySQL所有支持的字符集编译进来
--with-tcp-port=3306 指定此MySQL实例将监听TCP 3306端口
--with-unix-socket-path=/tmp/mysql.sock 指定UNIX socket文件的路径(为绝对路径)
--wih-mysqld-user=mysqld 指定用来运行MySQL守护进程的用户
--with-federated-storage-engine 支持federated存储引擎
--with-plugins=innobase 支持innobase数据库(5.1+,默认为空)
--without-debug \去除debug模式
--with-extra-charsets=gb2312 \添加gb2312中文字符支持
--enable-assembler \使用一些字符函数的汇编版本
--without-isam \去掉isam表类型支持 现在很少用了 isam表是一种依赖平台的表 (5.0以前)
--without-innodb \去掉innodb表支持 innodb是一种支持事务处理的表,适合企业级应用 5.0以前)
--with-pthread \强制使用pthread库(posix线程库)
--enable-thread-safe-client \以线程方式编译客户端
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \以纯静态方式编译服务端和客户端
优化编译:
1. -static 13%
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
静态链接提高13%性能
2. -pgcc 1%
CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \
CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \
-felide-constructors -fno-exceptions -fno-rtti"
如果是Inter处理器,使用pgcc提高 1%性能
3. Unix Socket 7.5%
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
使用unix套接字链接提高 7.5%性能,所以在windows下mysql性能肯定不如unix下面
4. --enable-assembler
允许使用汇编模式(优化性能)
如:./configure --prefix=/opt/aimcpro10/mysql-5.1.45 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-unix-socket-path=/opt/aimcpro10/mysql-5.1.45/mysql.sock
--enable-assembler --with-charset=utf8 --with-extra-charsets=gbk --with-plugins=innobase,myisam
安装完毕后,需要把MySQL 库加入系统,采用ldconfig 命令来实现:
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig -v | grep libmysqlclient
然后可以看到系统返回:
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
安装完以后要初始化数据库,当然你是升级的话不用做这步;
如果重新安装需要删除:/var/lib/mysql 中的内容。
/usr/local/mysql/bin/mysql_install_db
建立 mysql 用户;
/usr/sbin/useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
设置权限;
chown -R mysql:mysql /var/lib/mysql
chmod 750 /var/lib/mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 750 /usr/local/mysql
添加mysqld服务
ln -sv /usr/local/mysql/bin/* /usr/sbin/
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
/******************/
(ubuntu)
cp support-files/mysql.server /var/run/mysqld
chmod 755 /var/run/mysqld
/*****************/
chmod 755 /etc/rc.d/init.d/mysqld
/sbin/chkconfig --add mysqld
/sbin/chkconfig mysqld on
好了,至此mysql安装完毕,可以起动mysql服务
/etc/rc.d/init.d/mysqld start 或 service mysqld start
nohup mysql -uroot -pxxc602 dragon < /home/dragon-2011-02-25 &
挂起后台执行。
MySQL更改root密码的方法:
第一種︰
shell>
mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD(’new_password’) WHERE user=’root’; mysql> FLUSH PRIVILEGES;
第二種︰使用 set password 語法
shell> mysql -u root mysql mysql> SET PASSWORD FOR root=PASSWORD(’new_password’);
第三種︰使用 mysqladmin命令
shell>mysqladmin -u root password new_password
MYSQL导入导出:
导入MYSQL的脚本:
nohup mysql -uroot -pxxc602 dragon < /home/dragon-2011-02-25 > myout.file 2>&1 &.
备份MSYQL的脚本:
/usr/sbin/mysqldump dragon -uzycg -pCassandra100017 --skip-opt | gzip > /home/zycg/data/DB_bk/dragon-`date +%F`.gz
忘记Mysql的root密码,处理方法:
1 sudo killall -TERM mysqld
2 sudo mysqld_safe --skip-grant-tables &
3 不需密码进入mysql
mysql> update user set password = password('new_password') where user = 'root'(password 可以为null);
mysql> flush privileges;
4 重新杀Mysql,用正常方法启动Mysql
新建用户、为用户授权、删除用户、修改指定用户密码。
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
用户:phplamp 用户数据库:phplampDB
1.新建用户。
//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:phplamp 密码为:1234 的用户。
然后登录一下。
mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功
2.为用户授权。
//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作
/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;
*/
3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;
4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
mysql>flush privileges;
给root用户 远程访问192.168.0.82的权限。
mysql> grant all privileges on dragon.* to root@'192.168.0.82'identified by 'xxc602';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
grant all privileges on *.* to zycg@'192.168.0.%'identified by 'Cassandra100017';(内网地址)
grant all privileges on dragon.* to root@'%'identified by 'xxc602'; 所有帐号授权。
查看MYSQL表记录的多少:
select table_name,data_length from information_schema.tables;
SQL code
远程连接问题,大家可以参考:
1、MYSQL服务器上:
2、比如: C:\>mysql-uroot-p Enter password:******Welcometo the MySQL monitor. Commandsend with ;
3、or \g. Your MySQL connection idis 2
4、Server version:5.1.22-rc-community-log MySQL Community Server (GPL)
5、Type'help;' or '\h' for help. Type'\c' to clear the buffer.
6、mysql> grant all privileges on *.* to 'yourname'@'%' identifiedby 'youpasswd'; Query OK,0 rows affected (0.05 sec)
7、mysql> flushprivileges;
8、Query OK,0 rows affected (0.06 sec)
9、mysql> exitBye
10、 开启3306的方法:
11、 http://www.google.cn/search?hl=zh-CN&q=%E5%BC%80%E5%90%AF3306&meta=2、这里假设用SQLYog连接MYSQL服务器。
12、客户端机器上: HOST ADDRESS:服务端IP地址USER NAME:yourname PASSWORD:yourpasswd PORTS:3306DATABASES:可以留空。