对于针对字符串位置的操作,第一个位置被标记为1。
ASCII(str) 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select ASCII('2');
-> 50
mysql> select ASCII(2);
-> 50
mysql> select ASCII('dx');
-> 100
也可参见ORD()函数。
ORD(str) 如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。
mysql> select ORD('2');
-> 50
CONV(N,from_base,to_base) 在不同的数字基之间变换数字。返回数字N的字符串数字,从from_base基变换为to_base基,如果任何参数是NULL,返回NULL。参数N解释为一个整数,但是可以指定为一个整数或一个字符串。最小基是2且最大的基是36。如果to_base是一个负数,N被认为是一个有符号数,否则,N被当作无符号数。 CONV以64位点精度工作。
mysql> select CONV("a",16,2);
-> '1010'
mysql ......
网上很多写在windows下无法载入mysql扩展解决办法,但是在liunx下的就没几个,以下是在liunx下的解决办法
重装后php不会自动把mysql.so扩展加上去,要
sudo vim /etc/php5/apache2/conf.d/pdo.ini
加入extension=mysql.so就可以了
其实也可以在 /etc/php5/apache2/php.ini中加入
也可以在/etc/php5/apache2/conf.d/中多加一个mysql.ini里面加入extension=mysql.so ......
1. 使用GRANT语句添加:首先在数据库本机上用ROOT用户
登录MySql(我是用远程控制linux服务器,相当于在服务器本机登录MySql了),然后输入:
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
添加一个用户admin并授权通过本地机(localhost)访问,密码“something”。
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
添加一个用户admin并授权可从任何其它主机发起的访问(通配符%)。使用这一条语句即可。
2.使用INSERT语句:
mysql>INSERT INTO user VALUES('%','admin',PASSWORD('something'), 'Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y','Y')
用户信息可在mysql数据库中的users表中查看,这里不在介绍了就。数清Y的个数哦。 ......
use mysql
update user set Password=password('newpassword') where User='root';
flush privileges;
1.通过修改MYSQL数据库中MYSQL库的USER表
就用普通的UPDATE、INSERT语句就可以
2.在命令行中使用如下命令
MYSQLADMIN -u root -p PASSWORD mypasswd
3.可以修改MYSQL文件夹中的MY.INI文件
4.使用SET PASSWORD语句,
mysql> SET PASSWORD FOR myuser@localhost = PASSWORD('mypasswd');
5.使用GRANT ... IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO myuser@localhost IDENTIFIED BY 'mypassword'; ......
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
允许使用汇编模式(优化性能)
下面是总体的编译文件
编译代码
CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \
-fno-exceptions -fno-rtti -fomit-frame-pointer -ffixed-ebp"
./configure \
  ......
安装时的优化
(以下测试数据都来自于mysql的官方网站)
不要用rpm或其他二进制方式安装
要用源代码自己编译
如果是奔腾系统,推荐用pgcc编译器
且使用-O6的编译参数
这样编出来的mysql比用gcc2.95的要快1%
仅用用得着的字符集编译MySql
mysql目前支持多达34种不同的字符集(mysql4.1.11)
但我们常用的也无非就是latin1、gbk、utf8这三种而已
所以一般用编译参数
–with-charset=latin1 –with-extra-charsets=gbk,utf8
就行
用静态方式编译mysqld
用编译参数
–with-mysqld-ldflags=-all-static
在linux下将会提高13%的速度
编译时不要用参数–with-debug或者是–with-debug=all
–with-debug=all致使几乎所有的查询慢20%,有的更甚
仅是–with-debug也会带来15%的查询速度下降
如果编译的时候加了–with-debug=all参数
那么可以用–skip-safemalloc来启动服务器
这样速度影响跟–with-debug差不多
在跑在x86上的linux下用gcc不用frame pointers编译
也就是用参数-fomit-frame-pointer
或者是-fomit-frame-pointer -ffixed-ebp
这样会使mysqld快1-4%
用命令strip mysqld strip一下mysqld的二进制 ......